1. 程式人生 > >排序一個數組(陣列元素有重複的),並且記住新陣列的元素在原陣列中的位置

排序一個數組(陣列元素有重複的),並且記住新陣列的元素在原陣列中的位置

        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]在排序前陣列中的下標。