关于数组大小排序的问题

如图所示

img
14行代码中红线哪里,多了个-I。
然后在看下图

img
两图对比,我试图把-I去掉,发现没有报错。
这就是问题所在,请问-i的作用是什么?求大佬解答,不想评论有链接,因为我的是Java的,很多评论的链接都不符合我的要求。我还是初学者,麻烦各位了。

另外,你们都集完了吗?

img

没报错只是因为你的原始数据特殊,所以没有跑到最后一位。
你把代码改为int a[] = {5,4,3,2,1}; 试试看呢

内循环是 j < a.lenght -i-1,因为冒泡排序每次执行完一遍内循环后,都会将最大的数放在数组的最后一位(比如10个数,第一次循环完毕后,将最大的放在a[9]位置,第二次循环将第二大的数放在a[8]位置,以此类推)

这应该是冒泡排序?经过i次排序之后,前i大的数已经放到了数组的后面i个位置上,所以只要对前面length-i个数字继续进行冒泡排序。为什么减1呢,因为数组的下标是从0开始的.想不通的话,把i从0开始代进去看一下,在纸上写一遍会更容易理解。