“冒泡排序法”通过相邻两个数之间的比较和交换,使数值较小的数逐渐从底部移向顶部,数值越大的数逐渐从顶部移向底部。就像水底的气泡一样逐渐向上冒。
代码如下:
#include<stdio.h>
int main(void)
{
int i,j,k,n,temp,a[200];
scanf("%d",&n); //从键盘输入待排序的数据个数n<200
for(k=0;k<n;k++)
scanf("%d",&a[k]); //从键盘依次输入待排序数据
for(i=1;i<=n-1;i++) //外层循环,变量i控制排序总共进行n-1轮
{ for(j=n-1;j>=n;j--) //内层循环,变量j控制每轮进行比较的次数是n-i
if(a[j]<a[j-1])
{
temp=a[j]; a[j]=a[j-1];a[j-1]=temp; //相邻两个元素比较,若前大后小则交换
}
}
for(k=0;k<=n-1;k++) //利用for循环,依次输出排序结果
printf("%d ",a[k]);
printf("\n");
return 0;
}
键盘输入:
5 回车
13 回车
10 回车
12 回车
6 回车
8 回车
结果如下: