본문 바로가기
ALGORITHM/SORT

Bubble Sort (버블 정렬)

by melll93 2023. 2. 15.
버블 정렬(bubble sort)은 서로 이웃한 데이터들을 비교하며 가장 큰 데이터를 가장 뒤로 보내며 정렬하는 방식이다.

 

 

① 첫 번째 데이터인 15와 두 번째 데이터인 11을 비교해 큰 데이터를 뒤로 위치시킨다. 15가 크므로 둘의 위치를 바꾼다.

② 두 번째 데이터인 15와 세 번째 데이터인 1을 비교하는데, 앞에 위치한 15가 크므로 둘의 위치를 바꾼다.

③ 마찬가지 방식을 적용해 세 번째 데이터인 15와 네 번째 데이터인 3의 위치를 바꾼다.

④ 마찬가지 방식을 적용해 네 번째 데이터인 15와 마지막 데이터인 8의 위치를 바꾼다. 가장 큰 데이터인 15가 가장 뒤에 위치하게 된다.

⑤ 처음부터 다시 시작한다. 첫 번째 데이터인 11과 두 번째 데이터인 1의 크기를 비교하는데 앞에 위치한 11이 크므로 둘의 위치를 바꾼다.

⑥ 마찬가지 방식을 적용해 두 번째 데이터인 11과 세 번째 데이터인 3의 위치를 바꾼다.

⑦ 마찬가지 방식을 적용해 세 번째 데이터인 11과 네 번째 데이터인 8의 위치를 바꾼다. 두 번째로 큰 데이터인 11이 뒤에서 두 번째에 위치하게 된다.

⑧ 처음부터 다시 시작한다. 첫 번째 데이터인 1과 두 번째 데이터인 3의 크기를 비교하는데 앞에 위치한 1이 작으므로 그대로 둔다.

⑨ 두 번째 데이터인 3과 세 번째 데이터인 8의 크기를 비교하는데, 앞에 위치한 3이 작으므로 그대로 둔다. 세 번째로 큰 데이터인 8이 뒤에서 세 번째에 위치하게 된다.

⑩ 처음부터 다시 시작한다. 첫 번째 데이터인 1과 두 번째 데이터인 3의 크기를 비교하는데, 앞에 위치한 1이 작으므로 그대로 둔다. 데이터들에 대한 정렬이 완료된다.

 

JAVA Code
int arr[] = { 15, 11, 1, 3, 8 };

int temp;
for (int i = 0; i < arr.length; i++) { // 1번 for문
    for (int j = i; j < arr.length; j++) {// 2번 for 문
        if (arr[i] > arr[j]) {
            temp = arr[j]; // 배열의 값 중 제일 작은 값을 저장한다.
            arr[j] = arr[i]; // 해당 값의 index를 저장한다.
            arr[i] = temp;
        }
    }
}
for (int i = 0; i < arr.length; i++)
    System.out.print(arr[i] + " ");
버블 정렬의 시간 복잡도는 O(n^2)이다.

 

[참조문서]
https://terms.naver.com/entry.naver?docId=2270435&cid=51173&categoryId=51173

반응형

'ALGORITHM > SORT' 카테고리의 다른 글

Selection Sort (선택 정렬)  (0) 2023.02.14

댓글