Bubble Sort

2011-01-13

void bubbleSort(int * array, int size) { int temp = 0; int j=0; bool swapped = true; while(swapped) { j++; swapped = false; for( int i = 0; i < size -1 -j ; i++) { if ( array[i] > array[i+1] ) { temp = array[i]; array[i] = array[i+1]; array[i+1] = temp; swapped = true; } } j++; } } void swap(int * a, int * b) { int temp = 0; temp = *a; *a = *b; *b = temp; } bool swapif(int * a, int * b) { if ( *a > *b) { swap(a,b); return true; } else { return false; } }

void bubbleSort2(int * array, int size) { int j=0; bool swapped = true; while(swapped) { swapped=false; for( int i = 0; i < size -j -1 ; i++) { swapped = swapif(array+i,array+i+1) ? true : swapped; } j++; } }

정렬되는 것이 방울이 올라가는 것처럼 보인다고 해서 버블 정렬. 버블~ 버블~ 기초중의 기초. 거의 외워서 쓰고 있음. 빼먹은 게 있었다. -j 추가. 또 빼먹었다. j++; 의 위치를 아래로 옮김. 그대로는 마지막 항목이 정렬되지 않음. 개량형 추가. 성능상 차이 없음.

정의란 무엇인가 Selection Sort
comments powered by Disqus