A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qq103613 中级黑马   /  2015-7-22 22:38  /  2808 人查看  /  22 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对于冒泡排序我看了很对遍  还不是很明白  :dizzy:窍门到底在哪里????:'(

22 个回复

倒序浏览
中心思想:大数下沉
回复 使用道具 举报
外层控制要比较的元素的次数(即数组元素个数减1);内层控制每个未排序元素的比较次数(即数组元素长度-1再减去已排好的元素个数)
回复 使用道具 举报
思想弄懂了,但是自己敲代码还是有点吃力
回复 使用道具 举报
这块的确容易搞混,你要先理解冒泡思想然后再说用代码实现这样就不乱了
回复 使用道具 举报
多多掌握思想,代码敲起来才会轻松
回复 使用道具 举报
冒泡排序是让小数上升,大数下沉。

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

主要就是以上这两点。
交换数据什么的都很简单了。
回复 使用道具 举报
大数下沉,小数上浮,光看是不行的,得自己写出来才是真的,自己写两遍就懂了
回复 使用道具 举报
1.冒泡排序为2层循环。2.第一次循环表示遍历的次数。 3.第二次循环控制每次遍历的起始和结束条件。4.比较相近两个数,大的后移,这样第一次,最大的数就在最后一位了。第二次遍历就会使第二大的数在倒数第二位,如此反复。
回复 使用道具 举报
不就是大数下沉,一一比较for循环嵌套嘛
回复 使用道具 举报
些俩边就啥都懂了,先动手,在思考实现原理。。
回复 使用道具 举报
回复 使用道具 举报
CesC 中级黑马 2015-7-23 21:13:28
13#
先循环一遍,将最大的数放到最后一个,再循环第二遍,将剩下数中的最大数放到最后(也就是倒数第二个),以此类推。
回复 使用道具 举报
函数,循环,交换数值
回复 使用道具 举报
895928691 发表于 2015-7-23 08:00
思想弄懂了,但是自己敲代码还是有点吃力

对敲多练, 培养程序思维, 慢慢就好了.
回复 使用道具 举报
不会了就去死记那几段核心代码 然后敲着敲着就会了
回复 使用道具 举报
xuexiujuan_1991 来自手机 中级黑马 2015-7-23 22:59:35
17#
不光要敲代码,主要是理解过程和思想,自己拿一组数彻底剖析一遍,有帮助
回复 使用道具 举报
双重循环
回复 使用道具 举报
第一次比较先把第一个数字与后面每个数字逐一比较,比较后将最小数放在第一位,第二次把第二个数字与其后面的每一个数字逐一比较,将最小的数放在上一轮中最小数的后面,一次类推,最后得到一个从小到大排列的数组
回复 使用道具 举报
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马