double [] array = {4,3,6,5,9,6,5};
//保留数组的初始下标
int[] index_init = new int[array.length];
for (int i = 0; i < index_init.length; i++)
{
index_init[i] = i;
}
for (int i = 0; i < array.length-1; i++) //降序排序
{
for (int j = i+1; j < array.length; j++)
{
if(array[i]<array[j])
{
double temp = array[i];
array[i] = array[j];
array[j] = temp;
int p = index_init[i];
index_init[i] = index_init[j];
index_init[j] = p;
}
}
}
System.out.println(Arrays.toString(array));
System.out.println(Arrays.toString(index_init));
经过处理后的array降序排列,而index_init中的元素与array一一对应,index_init[i]即为array[i]在排序前数组中的下标。