9 8 7 6 5 4 3 2 1 0
8 7 6 5 4 3 2 1 0 9 ====>第1趟 i=0 交换9次 arr.length-1-i
7 6 5 4 3 2 1 0 8 9 ====>第2趟 i=1 交换8次 arr.length-1-i
6 5 4 3 2 1 0 7 8 9 ====>第3趟 i=2 交换7次 arr.length-1-i
5 4 3 2 1 0 6 7 8 9 ====>第4趟 i=3 交换6次 arr.length-1-i
4 3 2 1 0 5 6 7 8 9 ====>第5趟 i=4 交换5次 arr.length-1-i
3 2 1 0 4 5 6 7 8 9 ====>第6趟 i=5 交换4次 arr.length-1-i
2 1 0 3 4 5 6 7 8 9 ====>第7趟 i=6 交换3次 arr.length-1-i
1 0 2 3 4 5 6 7 8 9 ====>第8趟 i=7 交换2次 arr.length-1-i
0 1 2 3 4 5 6 7 8 9====>第9趟 i=8 交换1次 arr.length-1-i
过程:
i 是外层循环的趟数 第1次(i=0) 一共循环了9趟,所以i是length-1
j 是里层循环比较的次数,把第一个数和后面数依次比较,10个数的两两比较只要比较9次 ,所以j也是lenght-1
观察可以发现,每趟的9次比较中,交换的次数是依次减少的(两两交换的次数:交换9次,8次,7次..),为了提高效率,可以把里层循环简化为 arr.length-1-i
时间: 2024-08-01 10:45:16