【最基础的排序法】冒泡排序法

来源:互联网 发布:淘宝开店买衣服 编辑:程序博客网 时间:2024/05/16 05:13

冒泡排序法

这是我根据自己的记忆和对冒泡排序法的理解编写的程序:

#include<stdio.h>

int a[10];
int main()
{
int i;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);   //之前漏打了
}
int j;
int k;               //没有必要定义k,用i就好了
int swap;
for(j=0;j<9;j++)
  {
  for(k=0;k<9-j;k++)
  {
  if(a[k]<a[k+1])
  {
swap=a[k];
a[k]=a[k+1];
a[k+1]=swap;
}
   }
  }
for(i=0;i<10;i++)
{
printf("%d",a[i]);
}
return 0;

}

对比了网上的程序,发现大体上是没有问题,但是有些地方还需要改进。

在这个程序里我漏掉了scanf中的&取地址符&,导致程序运行失败。

最后总结下吧:
1.外层循环控制冒泡的总次数(n-1)。
2.内层循环控制每次冒泡要比较的次数。
注意这两点,真确写出冒泡法还是很容易的微笑


不过网上好像有更优化的冒泡法,我还是需要继续研究研究
0 0