找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2806|回復: 0
打印 上一主題 下一主題
收起左側

c語言冒泡法思路和程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:105323 發(fā)表于 2016-2-12 21:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
                        冒泡法排序的思路是:將相鄰的兩個數(shù)比較,將小的調到前頭。
   如若有以下6個數(shù):9  8  4  2  3  1,第一次將9和8對調,第二次將第2和第3個數(shù)(9和4)對調.........如此共進行5次,得到8-4-2-3-1-9的順
序,可以看到:最大的數(shù)9已“沉底”,成為最下面一個數(shù),而小的數(shù)“上升”。最小的數(shù)0已向上“浮起”一個位置。經第一趟(共5次)后,已得到最大的數(shù)。然后進行第二趟比較,對余下的前面5個數(shù)按上法進行比較。經過4次比較,得到次大的數(shù)8。如此進行下去?梢酝浦,對6個數(shù)要比較5趟,才能使6個數(shù)按大小順序排列。在第一趟中要進行兩個數(shù)之間的比較共5次,在第二趟中比4次..........第5趟比1次。
   如果有n個數(shù),則要進行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;
   }  
  }
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表