正在回答 回答被采纳积分+1
同学你好,1、内层循环中把数组a的长度减 i 和减 1 ,是为了减少比较次数,提高运行效率。这样每轮比较的次数就会逐渐减少。因为每次冒泡排序后,最大元素总在最下面,所以不用在比较了。
其中减1是因为数组的下标是从0开始,而数组的长度是从1开始的!例如:
数组 arr int[] arr = {34,53,12,32,56,17};的冒泡排序
for中的第一遍循环,是确定循环次数,有六个数组元素,循环5次
for中的第二层循环,将a[j]与a[j+1]的元素进行两两比较,
第一遍比较 34 12 32 53 17 56 //已经确定最后一个值是最大值 arr[5]
第二遍比较 12 32 34 17 53 56 //确定最后两个 arr[4] arr[5]
第三遍比较 12 32 17 34 53 56 //确定最后三个 arr[3] arr[4] arr[5]
第四遍比较 12 17 32 34 53 56 //确定最后四个 arr[2] arr[3] arr[4] arr[5]
第五遍比较 34 12 32 53 17 56 //比较最前面的两个数据 比较arr[0] 与arr[1]
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星