找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2814|回复: 0
打印 上一主题 下一主题
收起左侧

c语言冒泡法思路和程序

[复制链接]
跳转到指定楼层
楼主
ID:105323 发表于 2016-2-12 21:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                        冒泡法排序的思路是:将相邻的两个数比较,将小的调到前头。
   如若有以下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;
   }  
  }
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表