分析:
第一次:将最大值放在a[0]位置,将a[0]与a[0]后面的数比较,记录最大值下标位置maxIndex,然后将a[0]与a[maxIndex]位置交换;
第二次:将第二值放在a[1]位置,将a[1]与a[1]后面的数比较,记录最大值下标位置maxIndex,然后将a[1]与a[maxIndex]位置交换;
……
外层总共需要运行a.length-1次;
内层需要从i+1开始,运行到最后一个;
外层循环就是
for (int i = 0; i < a.length - 1; i++) {
int index = i;
boolean falg = false;
for (int j = i + 1; j < a.length; j++) {
if (a[index] > a[j]) {
index = j;
flag = true;// 需要交换
}
}
if (flag) {// 如果需要交换
// 交换
}
}