关于冒泡排序法的一些问题

图片说明
那个i为什么是从i=1开始,而不是从0开始呢。老师给的答案好像有点出入

如果i从0开始,那么循环里面的a.length就应该是a.length-1了,
数组的下标是从0开始对吧??如果a.length没有减一,那么i当然不能从0开始,不然a数组里面有一个值取不到了。

因为冒泡排序是每一项与紧邻的下一项比较,所以每一趟比较a.length-1次,外层循环1到a.length-1恰好是a.length-1次

首先你要明白冒泡算法本来就是用两值比对交换位置的方法来排序的,正常的冒泡第一轮过后,排在数组最后一位元素就是整个数组中的最大值(也可能是最小值看你是升序还是降序),因为你用的是下沉法,那么就是倒着拍的,第一轮的结果,把整个数组的最小值法放在数组的第一位,第二轮就把第二小的发在第二位,以此类推,假设你的数组有10个数,整个排序就用9轮遍历完成,所以循环从1开始,而不是0

相信别人的回答已经能解决你的问题了。。。最近我也在看排序,排序其实是一种思路,循环的i,j值其实是根据自己的习惯,需求会有变化,只要不遗漏数组中的数,都是可以的