我自己先写的选择排序
public static int[] Sort(int[] arr) {
for(int i = 0; i< arr.length; i++){
int index = i;
for(int j = i + 1; j < arr.length; j++){
if(arr[i] > arr[j])
index = j;
}
if(index != i){
int temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
}
}
return arr;
}
然后定义数组
int[] arr = {2,3,5,4,7,2,6};
打印出来的结果是:2 2 3 4 6 5 7
但是当把二层for循环中的if语句
for(int j = i + 1; j < arr.length; j++){
if(arr[i] > arr[j])
index = j;
}
换成
for(int j = i + 1; j < arr.length; j++){
if(arr[index] > arr[j])
index = j;
}
打印就是对的:2 2 3 4 5 6 7
这是为什么啊?按理index和i是相等的啊?