簡體   English   中英

按數組值排序索引

[英]ordering indexes by array values

我有一個整數數組,我想要一些代碼為我生成具有以下規范的數組:

  • 第一項是整數最大值的索引
  • 第二項是最大值小於最大值的索引
  • 最后一項是整數最小值的索引。

假設

int totalvalue[] = {100, 120, 90, 110}

我想要這個

{1,3,0,2}

好吧,你可以這樣做:

public static void main(String[] args) {

        Integer totalvalue[] = { 100, 120, 90, 110 };

        List<Integer> original = Arrays.asList(totalvalue);

        List<Integer> copy = new ArrayList<Integer>(original);

        Collections.sort(copy, new Comparator<Integer>() {

            @Override
            public int compare(Integer intger1, Integer intger2) {

                return intger2.compareTo(intger1);
            }
        });

        int[] finalArray = new int[totalvalue.length];
        for (int i = 0; i < totalvalue.length; i++) {
            finalArray[i] = original.indexOf(copy.get(i));
        }
        System.out.println(Arrays.toString(finalArray));
    }

我將借用別人的代碼,該代碼最近已從此處刪除;-)

    public static void main(String[] args){

        int array[] = { 90, 100, 90, 110 };

        Map<Integer, Integer> valueIndexMap = new HashMap<Integer, Integer>();
        int index = 0;
        for (int entry : array)
            valueIndexMap.put(entry, index++);

        //perform your sorting algorithm here on valueIndexMap.key

        Integer[] newArray = new Integer[array.length];
        for (int i = 0; i < array.length; i++) {
            newArray[i] = valueIndexMap.get(array[i]);
        }

        System.out.println(Arrays.asList(newArray));
    }

這里有一些https://www.cs.cmu.edu/~adamchik/15-121/lectures/Sorting%20Algorithms/sorting.html

研究它們很重要,因為它們是CS的基礎

祝好運

暫無
暫無

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

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