有10个地区的面积,要求对它们按由小到大的顺序排列,本题使用冒泡排序来实现。
冒泡排序(起泡法排序)基本思想:
1、每次将相邻两个数比较,如果第一个大于第二个数,则交换这两个数,否则不变。
2、如果有n个数,则要进行n-1趟比较。
3、在第一趟比较中要进行n-1次两两比较,则第一趟下来最后一个数是最大的,不用参与接下来的比较,于是在第二趟比较中要进行n-2次比较,…,在第j趟比较中要进行n-j次两两比较。
代码实现如下:
#include<stdio.h>
int main()
{
int a[10];
int i,j,t;
printf("请输入10个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);//输入10个数
for(j=0;j<9;j++)//外循环,表示循环9次
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("the sorted numbers:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}