正在回答
1回答
外层for循环:循环次数是数组长度-1,因为最后一次循环没有意义,参与排序的数组元素是0个,所以可以省去一次循环,只循环数组长度-1次
内层for循环:循环次数跟实际操作数据长度有关,第一次是你整个数组的长度,每排序完一次,就有一个数组元素已经找到他自己要去的位置,那么这个元素下次就不需要再次参加循环,所以是长度减去循环次数再减去1,这个减1跟外循环的理由一样。
你这个是从小到大冒泡排序,按例子走一遍:
第0次(外循环第一次):56排到最后面,总共比较了5次(内循环了5次,0,1,2,3,4),56不再参与后面的循环,内循环次数-1(也就是比较次数-1)【34,12,32,53,17,56】
第1次(外循环第二次):53排到最后面,比较了4次(内循环4次)【12,32,34,17,53,56】
同理。。。第2次【12,32,17,34,53,56】比较了3次,第3次【12,17,32,34,53,56】比较了2次
第4次(外循环第五次):只需要比较12和17,也就是只比较1次,最终完成了冒泡排序,得到需要的数组序列。
for(第0次外循环;外循环次数<数组长度-1;外循环次数+1) for(第0次内循环;内循环次数<数组长度-1-外循环次数;内循环次数+1)
就这么去理解,很简单的。
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星