使用索引保留进行排序

use*_*259 2 java sorting

而不是冒泡排序哪种排序技术可以用来排序整数数组,这样在输出时我可以在原始数组中显示它的位置?

INPUT 4 5 3 6 1

OUTPUT

   INDEX : VALUE
     5   :   1
     3   :   3
     1   :   4
     2   :   5
     4   :   6
Run Code Online (Sandbox Code Playgroud)

ass*_*ias 5

您可以使用TreeMap键是数组中的值,其值是索引+ 1.它将自动执行您需要的操作.

示例代码:

public static void main(String[] args) throws ParseException {
    int[] array = new int[] {4, 5, 3, 6, 1};
    Map<Integer, Integer> sortedMap = new TreeMap<Integer, Integer>();

    for (int i = 0; i < array.length; i++) {
       sortedMap.put(array[i], i + 1);
    }
    System.out.println(sortedMap);
}
Run Code Online (Sandbox Code Playgroud)

输出:

{1 = 5,3 = 3,4 = 1,5 = 2,6 = 4}

注意:这仅在原始列表中没有重复项时才有效