C语言冒泡排序,已备注
有什么不会的可以评论
冒泡排序很好理解,所谓冒泡,就是在水里越往上泡泡越大,在程序里把泡泡替换成数字即可,所以排完序后,是小数在前,大数在后。
没找着合适的图片演示大家可以去书上看看有张图片挺典型的
#include <stdio.h>
#include <stdlib.h>
int main(){
int a[10];
int i, j, temp;
// 输入10个整型数据
printf("请输入10个数字: \n");
for (i = 0; i < 10; i++)
scanf("%d", &a[i]);
// 排序
for (i = 0; i < 9; i++) // 10个数,10 - 1轮冒泡,每一轮都将当前最大的数推到最后
{
for (j = 0; j < 9 - i; j++) // 9 - i,意思是每当经过一轮冒泡后,就减少一次比较
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
// 打印排序结果
for (i = 0; i < 10; i++)
printf("%d\n", a[i]);
return 0;
}
// 所以最优的时间复杂度 和最差的时间复杂度 和平均时间复杂度 都为 :O(n^2)