至此第一次循环结束,由于是相邻两数比较,可以看到第一次循环我们只需要进行3次比较,即:(arary.length - 1) 次。
第二次循环:
1.首先比较array[0]和arary[1],即15和19;因为15 < 19,因此两个数的位置不变,如下。
0 |
1 |
2 |
3 |
15 |
19 |
12 |
37 |
2.接着比较array[1]和array[2],即19和12;因为19 > 12,因此交换两个数的位置,交换完的数组如下。
0 |
1 |
2 |
3 |
15 |
12 |
19 |
37 |
3.由于array[3]经过第一次循环后,必然大于前面所有的数,因此不再进行比较,则第二次循环结束。
在第二次循环中,由于已经结束的循环次数为1,因此有1个数已经确定位置无需再比较,因此我们比较的次数只有2次,比较次数可以抽象成以下公式:
array.length - 1 - (已经结束的循环次数)
第三次循环:
1.首先比较array