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]在排序前数组中的下标。
本文介绍了一种数组排序算法,该算法在进行降序排序的同时,记录并保持了每个元素在原始数组中的位置。通过双层循环比较和交换元素,实现了对double类型数组的降序排序,并使用辅助数组index_init来跟踪每个元素的原始下标。
1万+

被折叠的 条评论
为什么被折叠?



