原理
【1, 33, 5, 2, 8, 6, 7, 10】
从小到大排序, 每一轮将最小的数字放在最后, 直至所有的数字排序好
c语言版本:
#include<stdio.h>
void bubble_sort(int * originArr, int count)
{
int i, j;
int temp;
for(i = 0; i < count - 1; i++) {
for (j = 0; j < count - i - 1; j++) {
if (originArr[j] > originArr[j+1])
{
temp = originArr[j+1];
originArr[j+1] = originArr[j];
originArr[j] = temp;
}
}
}
}
int main(int argc, char const *argv[])
{
/* code */
int arr[] = {1, 33, 5, 2, 8, 6, 7, 10};
int count = sizeof(arr) / sizeof(int);
bubble_sort(arr, count);
for (int i = 0; i < count; ++i)
{
/* code */
printf("%d ", arr[i]);
}
printf("ok\n");
return 0;
}
运行结果:
gcc -std=c99 bubble.bak.c -o bubble.bak
./bubble.bak
1 2 5 6 7 8 10 33 ok
复杂度
时间复杂度:O(n^2)
空间复杂度: O(1)