标题:初学者之经典1——冒泡排序(适合最最初级的菜菜们)
只看楼主
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
得分:6 
你确定是冒泡泡泡泡~~~~?

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2010-10-05 19:18
菜虫编编
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2010-10-3
得分:0 
回复 9楼 御坂美琴
版主啊,那算法就是作比较用的!我举例写出我的思路来吧,比如有以下数:
                                   50
                                   32
                                   93
                                   2
                                   74
在第1篇扫描中,C程序把第1个值与第2个值比较。因为32比50小,所以它们交换了位置(第1次内循环开始):
                                   32
                                   50
                                   93
                                   2
                                   74
 然后比较32和93,没有改变它们的位置。接着,C程序比较32和2。因为2更小,所以32和2交换位置:
                                  2
                                  50
                                  93
                                  32
                                  74
最后,把2和74进行比较,没有改变它们的位置。(第1次内循环结束)
          第1遍扫描之后:
                                 2
                                 50
                                 93
                                 32
                                 74   
在第2篇扫描中,C程序把第2个值50与93进行比较,并且不改变它们的位置。然后比较50和32,并交换它们的位置 :
(第2次内循环开始)              2
                                 32
                                 93
                                 50
                                 74
然后,C程序把第2个值32与74进行比较,并且不改变它们的位置
第2篇扫描后:
                               2
                               32
                               93
                               50
                               74
 以此类推!!!
                                                               

心境决定环境,想法决定活法,思路决定出路!
2010-10-05 19:42
菜虫编编
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2010-10-3
得分:0 
回复 11楼 你们都要疼我哦
看我举的例子,你觉得呢?

心境决定环境,想法决定活法,思路决定出路!
2010-10-05 19:45
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
得分:0 
看你举的例子 果然不是冒泡

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2010-10-05 19:49
菜虫编编
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2010-10-3
得分:0 
回复 14楼 你们都要疼我哦
不冒吗?看了你这一句,我冒泡了!!

心境决定环境,想法决定活法,思路决定出路!
2010-10-05 19:55
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
得分:0 
怎么你才能明白捏?
猫跑排序比较的是相邻2个数,明白?
从算法上看 它进行的始终都是相邻2个数的比较。
不符合这个条件 怎么叫猫跑呢

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2010-10-05 19:56
执C不悟
Rank: 1
等 级:新手上路
帖 子:14
专家分:9
注 册:2010-6-19
得分:0 
以下是引用御坂美琴在2010-10-4 01:15:00的发言:

我整理了一下代码,加了个随机初始化,把这个代码的严重错误找了出来,请自己运行一下吧
 
 
既然楼主是打算把代码发给新人看的,那最好对你的代码负责一下
想问下上面关于break的问题,不太懂这个break在这里的作用,貌似用得不对也。
2010-10-06 12:31
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
得分:0 
是的,如果真是冒泡,那这个break才产生作用,可以提早退出循环(在一轮里没有交换即表明已经排序完成)
但这不是冒泡,而是选择排序,这个break只会使算法产生错误

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-10-06 12:41
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:0 
以下是引用御坂美琴在2010-10-6 12:41:07的发言:

是的,如果真是冒泡,那这个break才产生作用,可以提早退出循环(在一轮里没有交换即表明已经排序完成)
但这不是冒泡,而是选择排序,这个break只会使算法产生错误


呵呵 超能力训练果然包括计算能力啊 膜拜牛人。。。

顺便 sample code 也不好写啊。。

膜拜 膜拜 受教了。。
2010-10-06 12:52
野鸡
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-10-6
得分:0 
好像不要这段      if (didSwap == 0)
                     {
                        break;
                     }
也可以。请问 这段有什么用?
2010-10-06 16:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-321919-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.536811 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved