record logo record

버블 정렬(Bubble Sort) 개념 요약

버블 정렬(Bubble Sort) vs 선택 정렬(Selection Sort)

버블 정렬(Bubble Sort)의 알고리즘 예시

Source Code

#include <stdio.h>

int main(){
	int num[10] = {1, 10, 5, 8, 7, 6, 4, 3, 2, 9};
	int i, j, index, tmp;
	int r;
	for(i = 0 ; i < 10; i++){
		printf("%d 번째 회전 \n",i);
		for(j = 0; j < 10 - i; j++){
			if(num[j] > num[j+1]){
				tmp = num[j+1];
				num[j+1] = num[j];
				num[j] = tmp;
				for(r = 0; r < 10; r++){
					printf("%d ",num[r]);
				}
				printf("\n");
			}
		}
	}

	return 0;
}

버블 정렬(Bubble Sort)의 시간복잡도

  • 시간복잡도를 계산하면…
  • 첫 for 루프 n-1회 반복 후 배열을 첫 번째 원소 정렬
  • (n-1) + (n-2) + … + 2 + 1 = n(n-1)/2 -> 등차수열의 합

  • n(n-1)/2 = (n^2-n)/2 이므로

따라서 버블 정렬의 시간 복잡도 Θ(n^2)

정렬 알고리즘 시간복잡도 비교

관련된 Post

References