728x90
    
    
  소개
- 이웃한 두 수의 크기를 비교하여 교환을 반복합니다.
 - 매 라운드마다 1개씩 요소가 앞쪽부터 정렬됩니다.
 - 정렬은 앞쪽부터 이뤄지고, 라운드 별 수의 크기 비교는 뒤쪽부터 시작됩니다.
 - 배열의 요소가 n개 있을 때 시간복잡도는 
O(n^2) 
구현
public class BubbleSort {
    static void bubbleSort(int[] arr) {
        // 배열 앞쪽부터 정렬해간다.
        for (int i = 0; i < arr.length - 1; i++) {
            // 가장 뒤에 있는 요소들부터 비교해서 작은 값을 앞으로 한 칸씩 당긴다.
            for (int j = arr.length - 1; j > i; j--) {
                if (arr[j - 1] > arr[j]) {
                    swap(arr, j - 1, j);
                }
            }
        }
    }
    static void swap(int[] arr, int index1, int index2) {
        int temp = arr[index1];
        arr[index1] = arr[index2];
        arr[index2] = temp;
    }
}'Problem Solving > 알고리즘' 카테고리의 다른 글
| 삽입 정렬(Insertion Sort) (0) | 2021.06.13 | 
|---|---|
| 선택 정렬(Selection Sort) (0) | 2021.06.07 | 
| 최소 신장 트리 : 크루스칼(Kruskal) (0) | 2021.04.29 | 
| 최단 경로 알고리즘 : 플로이드-워셜(Floyd-Warshall) (0) | 2021.04.23 | 
| 최단 경로 알고리즘 : 다익스트라(Dijkstra) (0) | 2021.04.23 |