内循环的j<a.length-i-1的意思

内循环的j<a.length-i-1的意思

老师说是凑第一个,但是这样不严谨吧?a.length-i-1代表什么意思呢?为什么这个能判断出互换的次数?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

冒泡排序的基本原理是:依次比较相邻的两个数,小数放前,大数放后。第一趟:先比较第1个数和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,小数放前,大数放后,依次类推,直至比较最后两个数,小数放前,大数放后。到第一趟结束,将最大的数就放到了最后。在第二趟:仍从第一个数开始(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,这样在倒数第二的位置上就得到了一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。

冒泡排序算法其实就是利用一个二重循环对数列进行扫描,外循环从0到a.length-1,内循环从0到a.length-i-1,因为外循环每一趟结束之后,末端就会有一个大的元素到位,因此每一趟内循环搜索的范围在减少。

如果解决了你的疑惑,请采纳,祝学习愉快~

  • 莨菽菽 提问者 #1
    主要是内循环的次数每次都在缩减,而且每次外循环都排好一个了
    2017-04-28 10:24:55
  • irista23 回复 提问者 莨菽菽 #2
    其实i就是外循环的第几个数,内循环的-1和外循环的-1作用是一样的,防止数组越界。如果解决了你的疑惑,请采纳,祝学习愉快~
    2017-04-28 10:55:46
  • 其实内循环的a.length-i-1就是表示要跟多少个数比较,这样理解对吗 老师
    2017-08-15 22:20:19
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师