給出分數數組,得到對應的名次數組,兩種情況

**

第一種: 列如有:score = {4,2,5,4} 則輸出:rank = {2,3,1,2}

**

class Test {
    //打印數組內容
    public static void print(int a[]) {
        for (int i : a) {
            System.out.print(i + " ");
        }
        System.out.println();
    }

    //得到對應的名次
    public static int[] getRank(int a[]) {
        int[] temp = new int[a.length];  //生成對應長度的空數組,用於存儲名次
        List list = new ArrayList();
        for(int i : a) {
            if(!list.contains(i)) {      //去除重複元素{4,2,5}
                list.add(i);
            }
        }
        Collections.sort(list);         //升序{2,4,5}
        Collections.reverse(list);      //反轉{5,4,2}

        for (int i = 0; i < temp.length; i++) {
            temp[i] = list.indexOf(a[i])+1;     //分數對應的索引,+1=名次
        }
        return temp;
    }

    public static void main(String[] args) {
        int[] sorce = {4,2,5,4};
        int[] rank = Test.getRank(sorce);
        Test.print(sorce);
        Test.print(rank);
    }
}
輸出結果:4 2 5 4 
         2 3 1 2     

第二種: 列如有:score = {4,2,5,4} 則輸出:rank = {2,4,1,2}

class Test {
    //打印數組內容
    public static void print(int a[]) {
        for (int i : a) {
            System.out.print(i + " ");
        }
        System.out.println();
    }

    //得到對應的名次
    public static int[] getRank(int a[]) {
        int[] temp = new int[a.length];  //生成對應長度的空數組,用於存儲名次
        List list = new ArrayList();
        for(int i : a) {
            /*if(!list.contains(i)) {        
                list.add(i);
            }*/
            list.add(i);                //不去除重複元素{4,2,5,4}
        }

        Collections.sort(list);         //升序{2,4,4,5}
        Collections.reverse(list);      //反轉{5,4,4,2}

        for (int i = 0; i < temp.length; i++) {
            temp[i] = list.indexOf(a[i])+1;     //分數對應的索引,+1=名次
        }
        return temp;
    }

    public static void main(String[] args) {
        int[] sorce = {4,2,5,4};
        int[] rank = Test.getRank(sorce);
        Test.print(sorce);
        Test.print(rank);
    }
}
輸出結果:4 2 5 4 
         2 4 1 2     
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章