冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端
以下是冒泡排序的一个简单示例:给定数字3, 8, 6, 2, 9, 1,首先比较3和8,8大于3则交换位置,得到8,3,6,2,9,1。接着再比较3和6,6大于3则交换位置,得到8,6,3,2,9,1,然后再把6和2比较,2小于6则不交换。依此类推,最终得到的排序结果如下:1,2,3,6,8,9。
下面是c语言实现的冒泡排序:
#include <stdio.h>
int main(void) {
int array[6] = {3, 8, 6, 2, 9, 1};
int i, j, tmp;
for (i = 0; i < 6; i++) {
for (j = i + 1; j < 6; j++) {
if (array[i] > array[j]) {
tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
}
}
for (i = 0; i < 6; i++) {
printf(“%d “, array[i]);
}
printf(”\n”);
return 0;
}
结果显示:1 2 3 6 8 9