알고리즘/정렬

[알고리즘 정렬] 버블 정렬(Bubble Sort)

Sigfriede 2023. 6. 5. 13:10

  버블 정렬(Bubble Sort)이란 인접한 데이터를 비교하며 자리를 바꾸는 방식을 뜻합니다. 가장 큰 데이터를 맨 뒤로 보냅니다. 알고리즘 복잡도는 O(n^2)입니다.

 

정렬되지 않은 데이터

15 11 1 3 8

11 1 15 3 8

11 1 3 15 8

11 1 3 8 15

1 11 3 8 15

1 3 11 8 15

정렬이 끝난 데이터

1 3 8 11 15

 

  버블 정렬 구현 코드

pubilc class Main {
	public static void bubbleSort(int[] array) {
    	for (int i = 1; i < array.length - 1; i++) {
        	for (int j = 0; j < array.length - i; j++) {
            	if (array[j] > array[j + 1]) {
            		int temp = array[j];
                	array[j] = array[j + 1];
                	array[j + 1] = temp;
            	}
            }
        }
    }
}

  바깥 for문이 i는 1부터 array의 길이 - 1, 즉 마지막 원소의 앞까지 순회합니다.

  안쪽 for문이 array의 길이만큼 순회합니다. 배열의 처음부터 끝까지 순회한다는 뜻입니다.

   if문에서 array의 j번째 원소가 array의 j + 1번째 원소보다 크다면 두 원소의 위치를 바꿔야 합니다.  임시 변수 temp를 생성하고 array의 j번째 원소를 할당합니다.  array의 j번째 원소에 array의 j + 1번째 원소를 할당합니다.  array의 j + 1번째 원소에는 array의 j번째 원소를 할당했던 임시 변수 temp를 할당합니다.

 

  예제 출처: 컴퓨터 개론(자세한 설명이 필요하다면 아래 주소로)

  https://terms.naver.com/entry.naver?docId=2270437&cid=51173&categoryId=51173