소프트웨어 개발/Algorithm

Bubble, Selection, Insertion Sort

Leo's notes 2019. 3. 3. 14:19

Time Complexity

O(n^2)

Example

#define SWAP(x, y) do { typeof(x) SWAP = x; x = y; y = SWAP; } while (0)

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

void insertion_sort(int *arr, int size) {
int i, j, key;
for(i=1;i<size;i++) {
key = arr[i];
for(j=i-1;j>=0&&arr[j]>key;j--) {
arr[j+1] = arr[j];
}
arr[j+1] = key;
}
}

void selection_sort(int *arr, int size) {
int min;
for(int i=0;i<size-1;i++) {
min = i;
for(int j=i;j<size;j++) {
if (arr[min] > arr[j]) min = j;
}
SWAP(arr[i], arr[min]);
}
}