버블 정렬은 정렬 알고리즘 중 가장 기본적인 형태로, 서로 인접한 두 요소를 비교하여 정렬하는 방식이다. 간단하지만, 효율성 측면에서는 다른 정렬 알고리즘에 비해 떨어진다.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_SIZE 10
#define SWAP(x, y, t) ( (t)=(x), (x)=(y), (y)=(t) )
int list[MAX_SIZE];
int n;
void bubble_sort(int list[], int n) {
int i, j, temp;
for (i = n - 1; i > 0; i--) {
for (j = 0; j < i; j++)
if (list[j] > list[j + 1])
SWAP(list[j], list[j + 1], temp);
}
}
int main(void) {
int i;
n = MAX_SIZE;
srand(time(NULL));
for (i = 0; i < n; i++)
list[i] = rand() % 100;
bubble_sort(list, n);
for (i = 0; i < n; i++)
printf("%d ", list[i]);
printf("\n");
return 0;
}
출처
C언어로 쉽게 풀어쓴 자료구조 - 천인구