冒泡排序: 越小的元素会经由交换慢慢“浮”到数列的顶端(升序),两两元素进行比较,小的则向前移动再与前一个元素进行比较,如此反复。
原始数据: 9 6 5 3 4
第一轮: 3
9 6 5 4
第二轮: 3 4
9 6 5
第三轮: 3 4 5
9 6
第四轮: 3 4 5 6
9
/* Author:余性笃厚
* Description:冒泡排序
*/
#include <stdio.h>
int main(void) {
int bs[] = { 1,5,3,11,9,12,44,15,9 };
int i, j, temp, totalElement = sizeof(bs) / 4;
/* 控制轮数 */
for (i = 0; i < totalElement - 1; i++) {
/* 控制交换,交换轮数在逐减 */
for (j = totalElement - 1; j > 0; j--) {
if (bs[j] < bs[j- 1]) {
temp = bs[j];
bs[j] = bs[j - 1];
bs[j - 1] = temp;
}
}
}
/* 遍历输出结果 */
for (i = 0; i < totalElement; i++)
printf("%-3d", bs[i]);
return 0;
}
Result:
1 3 5 9 9 11 12 15 44