public void bubbleSort(int[] a) {
int i, j;//数组的下标从0开始, 最后一个元素的下标是数组长度减一
for (i = 0; i < a.length - 1; i++) {//假如有五个元素的话,大循环只需要遍历四次,因为一个元素总是有序的
for (j = 0; j < a.length - 1 - i; j++) {//减一是防止数组越界
int temp;
if (a[j] > a[j + 1]) {//如果前一个元素大于后一个元素,两者交换
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
第一大次循环40经过四次交换,到了最后;
第二大次循环18经过四次交换,到了最后;
第三大次循环15经过四次交换,到了最后;
第四大次循环12经过四次交换,到了最后;
后面的数依次按照循环,每次剩下的数中最大的数都放到了最后。
这时的8不用比较,因为一个数的数组始终是有序的。