标题: c语言冒泡法思路和程序 [打印本页]

作者: 51黑黑黑    时间: 2016-2-12 21:05
标题: c语言冒泡法思路和程序
                        冒泡法排序的思路是:将相邻的两个数比较,将小的调到前头。
   如若有以下6个数:9  8  4  2  3  1,第一次将9和8对调,第二次将第2和第3个数(9和4)对调.........如此共进行5次,得到8-4-2-3-1-9的顺
序,可以看到:最大的数9已“沉底”,成为最下面一个数,而小的数“上升”。最小的数0已向上“浮起”一个位置。经第一趟(共5次)后,已得到最大的数。然后进行第二趟比较,对余下的前面5个数按上法进行比较。经过4次比较,得到次大的数8。如此进行下去。可以推知,对6个数要比较5趟,才能使6个数按大小顺序排列。在第一趟中要进行两个数之间的比较共5次,在第二趟中比4次..........第5趟比1次。
   如果有n个数,则要进行n-1 趟比较。在第一趟比较中要进行 n-1 次两两比较,在第k趟比较中要进行n-1-k次两两比较。
程序如下:
#define NUM 6
uchar buf[NUM]={9,8,4,2,3,1};
for(i=0;i<NUM-1;i++)
{
  for(j=0;j<NUM-i-1;j++)
  {
   if(buf[j]>buf[j+1])
    {
     temp=buf[j];
    buf[j]=buf[j+1];
    buf[j+1]=temp;
   }  
  }
}







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1