버블 정렬(Bubble Sort)




버블 정렬 ? 

버블 정렬은 거품 정렬이라고도 불리는 정렬 입니다.


아래 그림과 같이 인접하는 두 항을 


전부 비교해서 정렬하는 방법입니다.



n개의 항이 있다면 n-1번씩 비교 하게 됩니다.


정렬 알고리즘 중에서 가장 비효율적인 방법이라고 합니다.



배열을 이용한 버블 정렬 예제


버블 정렬 함수


이전항(array[j-1]), 다음항(array[j])을 비교해서 

이전항이 클 경우 자리를 바꿔주고 그렇지 않으면 패스합니다.

void bubble_sort(int array[], int size){
int t;
for(int i=0; i<size-1; i++){
for(int j=1; j<size; j++){
if(array[j-1]>array[j]){
t = array[j-1];
array[j-1] = array[j];
array[j] = t;
}
}
}
}


실행 함수


정렬 전과 후 배열 출력


void main(){
int array[] = {11,10,33,22,55,9};
int size = sizeof(array)/sizeof(int);
printf("########### Sorting before ###########\n");
for(int i=0; i<size; i++){
printf("%-4d",array[i]);
}
bubble_sort(array,size);
printf("\n########### Sorting after ###########\n");
for(int i=0; i<size; i++){
printf("%-4d",array[i]);
}
}


실행 결과




참고 : C로 배우는 알고리즘 (이재규)

위키백과(버블정렬)




관련포스


[DataStructure] 기수 정렬(Radix Sort)

[DataStructure] 퀵 정렬(Quick Sort)

[DataStructure] 셸 정렬(Shell Sort)

[DataStructure] 버블 정렬(Bubble Sort)

[DataStructure] 삽입 정렬(Insertion Sort)

[DataStructure] 선택 정렬(Selection Sort)



'언어 > Data Strcuture' 카테고리의 다른 글

[C] 퀵 정렬(Quick Sort)  (0) 2019.04.24
[C] 셸 정렬(Shell Sort)  (2) 2019.04.23
[C] 삽입 정렬(Insertion Sort)  (0) 2019.04.19
[C] 선택 정렬(Selection Sort)  (0) 2019.04.19
[C] 트리(Tree)  (0) 2019.04.07

+ Recent posts