我正在尝试制作一个程序,它可以对数组进行排序,但是可以跟踪它们的原始索引。我不想更改原始的数组,因此我将其复制到list [][].
public static void main(String[] args) {
int array[] = {17, 10, 8, 13, 5, 7, 8, 30};
int list[][] = new int[8][2];
int temp1, temp2, index, max;
for(int i=0;i<array.length; i++){
list[i][0]=array[i];
list[i][1]=i;
}
for(int i=0; i <array.length-1; i++){
max = list[i][0];
index = i;
for(int j = i+1; j<array.length;j++){
if(max<list[j][0]){
max = list[j][0];
index = j;
}
}
temp1 = list[i][0];
temp2 = list[i][1];
list[i][0]=max;
list[i][1] = index;
list[index][0]=temp1;
list[index][1]=temp2;
}
for(int n=0; n<list.length;n++){
System.out.println(list[n][0] + " " + list[n][1]);
}
}
所以应该输出:
30 7
17 0
13 3
10 1
8 2
8 6
7 5
5 4
但是当我运行它时,它输出:
30 7
17 7
13 3
10 7
8 6
8 7
7 7
5 4
有什么建议?