개요
- C++ 거품정렬 구현
기본형
#include <iostream>
void bubble_sort(int a[], int size) {
int i, j;
for(i=0; i<size-1; i++) {
for(j=0; j<size-i-1; j++) {
if(a[j] > a[j+1]) std::swap(a[j], a[j+1]);
}
}
}
int main() {
int arr[] = {9,1,22,4,0,-1,1,22,100,10};
int size = sizeof(arr)/sizeof(int);
bubble_sort(arr, size);
for(int i=0; i<size; i++) std::cout << arr[i] << " ";
// -1 0 1 1 4 9 10 22 22 100
}
개선형 (swapped 플래그 적용)
#include <iostream>
void bubble_sort(int a[], int size) {
int i, j;
bool swapped;
for(i=0; i<size-1; i++) {
swapped = false;
for(j=0; j<size-i-1; j++) {
if(a[j] > a[j+1]) {
std::swap(a[j], a[j+1]);
swapped = true;
}
}
if( !swapped ) break;
}
}
int main() {
int arr[] = {9,1,22,4,0,-1,1,22,100,10};
int size = sizeof(arr)/sizeof(int);
bubble_sort(arr, size);
for(int x: arr) std::cout << x << " ";
// -1 0 1 1 4 9 10 22 22 100
}