概念: 两两相邻的元素进行比较,如果前面元素大于后面元素就交换两个元素的位置,最终的结果是最大的一个元素移动到了最后的位置。 我们 暂称这个过程为冒泡。(两两比较大数放后边)
举例:从键盘输入7个int类型参数,存放到数组中,进行从小到大排序。(用冒泡排序)
#include <stdio.h>
#define N 7
int main(int argc, char const *argv[])
{
int a[N] = {0};
for (int i = 0; i < N; i++)
{
printf("请输入第%d个整数>:", i + 1);
scanf("%d", &a[i]); // 数组的输入
}
printf("数组的内容为:");
for (int i = 0; i < N; i++)
{
printf("%d ", a[i]);
}
printf("\n");
for (int i = 0; i < N - 1; i++) // 外层循环控制总排序的次数
{
for (int j = 0, t = 0; j < N - 1 - i; j++) // 内层循环控制每一次排序需要比较的次数
{
if (a[j] > a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
printf("数组的内容为:");
for (int i = 0; i < N; i++)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
运行结果: