看 c.biancheng.net 给的关于选择排序的例程,有个小问题:
1 int[] number = {13,15,24,99,4,1};
2 String end = "\n";
3 int index;
4 for (int i = 1;i < number.length;i++) {
5 index = 0;
6 for(int j = 1;j <= number.length-i;j++) {
7 if (number[j] > number[index]) {
8 index = j; // 查找最大值
9 }
10 }
11 end = number[index] + " " + end; // 定位已排好的数组元素
12 int temp = number[number.length-i];
13 number[number.length-1] = number[index];
14 number[index] = temp;
15 System.out.print("【");
16 for (int j = 0;j < number.length-i;j++) {
17 System.out.print(number[j]+" ");
18 }
19 System.out.print("】"+end);
}
问题就在第13行,为什么是 number[number.length - 1] ?中括号里为什么是 -1 而不是 - i ?更奇怪的是,两种情况下运行得到的结果都是正确的……这是为什么呀?
Thanks!