排序一個數組(陣列元素有重複的),並且記住新陣列的元素在原陣列中的位置
阿新 • • 發佈:2018-12-09
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]在排序前陣列中的下標。