簡體   English   中英

排序后如何找出數組中項目的索引

[英]How to find out index of item in array after sorting

我有 int 數組,例如 {7,3,5,4} 並且我想對它們進行排序,但我想在排序之前找出項目的索引。 我不想在未排序的數組中找到該項目,因為它太慢了(復雜度O(n^2) )。 有沒有辦法做到這一點?

如果您不想跟蹤 2 個數組,在這些情況下我喜歡做的是創建一個TreeMap ,其中鍵是數組的值,值是數組的索引。 只是從評論中給你另一種變化。 像這樣的東西:

int[] intArray = { 7, 3, 5, 4 };
Map<Integer, Integer> map = new TreeMap<>();
for(int i=0; i<intArray.length; i++){
    map.put(intArray[i], i);
}
//prints numbers in order with orginal index
for(int key : map.keySet()){
    System.out.println("Number "+key);
    System.out.println("Orginal index "+map.get(key));
}

輸出:

Number 3
Orginal index 1
Number 4
Orginal index 3
Number 5
Orginal index 2
Number 7
Orginal index 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM