黑马程序员技术交流社区

标题: 求助冒泡排序 [打印本页]

作者: qq103613    时间: 2015-7-22 22:38
标题: 求助冒泡排序
对于冒泡排序我看了很对遍  还不是很明白  :dizzy:窍门到底在哪里????:'(
作者: lclofty    时间: 2015-7-23 07:24
中心思想:大数下沉
作者: lclofty    时间: 2015-7-23 07:29
外层控制要比较的元素的次数(即数组元素个数减1);内层控制每个未排序元素的比较次数(即数组元素长度-1再减去已排好的元素个数)
作者: 895928691    时间: 2015-7-23 08:00
思想弄懂了,但是自己敲代码还是有点吃力
作者: 魏武    时间: 2015-7-23 08:41
这块的确容易搞混,你要先理解冒泡思想然后再说用代码实现这样就不乱了
作者: skywan    时间: 2015-7-23 08:56
多多掌握思想,代码敲起来才会轻松
作者: 408205555    时间: 2015-7-23 10:52
冒泡排序是让小数上升,大数下沉。

技巧就是:
外层循环每循环一次,就会确定下来一个数,确定下来的这个数不会参与到下次的循环。也就是说,每次循环下来,数字的总个数都会减少一个。
内层循环控制数字互相比较的次数,因为是逐位比较,所以次数=总的数字个数-1,。因为外层循环每循环一次,就会确定下来一个数字,所以数字互相比较的时候也要考虑到这个因素,减几个数字就少比较几次,因为内层循环的循环条件里有一个是length-i-1。

主要就是以上这两点。
交换数据什么的都很简单了。
作者: 562413895@qq.co    时间: 2015-7-23 14:51
大数下沉,小数上浮,光看是不行的,得自己写出来才是真的,自己写两遍就懂了
作者: alanwangke213    时间: 2015-7-23 14:55
1.冒泡排序为2层循环。2.第一次循环表示遍历的次数。 3.第二次循环控制每次遍历的起始和结束条件。4.比较相近两个数,大的后移,这样第一次,最大的数就在最后一位了。第二次遍历就会使第二大的数在倒数第二位,如此反复。
作者: 哒哒萌    时间: 2015-7-23 20:46
不就是大数下沉,一一比较for循环嵌套嘛
作者: 午夜码农    时间: 2015-7-23 20:48
些俩边就啥都懂了,先动手,在思考实现原理。。
作者: 普通蜗牛    时间: 2015-7-23 21:09
我今天刚弄清楚
http://bbs.itheima.com/thread-217478-1-1.html


作者: CesC    时间: 2015-7-23 21:13
先循环一遍,将最大的数放到最后一个,再循环第二遍,将剩下数中的最大数放到最后(也就是倒数第二个),以此类推。
作者: 黑马灬小胖纸    时间: 2015-7-23 21:44
函数,循环,交换数值
作者: Northcity    时间: 2015-7-23 21:55
895928691 发表于 2015-7-23 08:00
思想弄懂了,但是自己敲代码还是有点吃力

对敲多练, 培养程序思维, 慢慢就好了.
作者: 糖糖本尊    时间: 2015-7-23 21:58
不会了就去死记那几段核心代码 然后敲着敲着就会了
作者: xuexiujuan_1991    时间: 2015-7-23 22:59
不光要敲代码,主要是理解过程和思想,自己拿一组数彻底剖析一遍,有帮助
作者: FreshMAN15    时间: 2015-7-24 00:03
双重循环
作者: 1158865593    时间: 2015-7-24 00:34
第一次比较先把第一个数字与后面每个数字逐一比较,比较后将最小数放在第一位,第二次把第二个数字与其后面的每一个数字逐一比较,将最小的数放在上一轮中最小数的后面,一次类推,最后得到一个从小到大排列的数组
作者: 蓝蓝    时间: 2015-7-24 02:12
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
作者: 三月小雨    时间: 2015-7-24 04:58
冒泡排序法的基本思想:(以升序为例)含有n个元素的数组原则上要进行n-1次排序。对于每一躺的排序,从第一个数开始,依次比较前一个数与后一个数的大小。如果前一个数比后一个数大,则进行交换。这样一轮过后,最大的数将会出现称为最末位的数组元素。第二轮则去掉最后一个数,对前n-1个数再按照上面的步骤找出最大数,该数将成为倒数第二的数组元素......n-1轮过后,就完成了排序。
作者: chensc    时间: 2015-7-24 06:30
学习学习!
作者: 爱生活爱程序    时间: 2015-7-24 08:34
先把原理搞懂,接着就是不断的重复敲代码。自然就掌握了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2