如何反转排序?

时间:2018-02-06 08:24:53

标签: java sorting

截至目前我编写了该程序,并将学生分数从最低到最高排序。我需要将它从最高到最低的位置进行反转。

public static void sortStudentScores(String namesArry[], int scoresArry[]) {
    int tempScore;
    String tempName;

    for (int i = 0; i < scoresArry.length; i++) {

        for ( int j= i + 1; j < scoresArry.length; j++) {

            if (scoresArry[i] > scoresArry[j]) {
                tempScore = scoresArry[i];
                scoresArry[i] = scoresArry[j];
                scoresArry[j] = tempScore;
                tempName = namesArry[i];
                namesArry[i] = namesArry[j];
                namesArry[j] = tempName;

            }
        }
    }

    System.out.println("\nAscending Order:");

    for (int i = 0; i < namesArry.length; i ++) {
        System.out.println("Student Name: " + namesArry[i] + " " + scoresArry[i]);
    }
}   

3 个答案:

答案 0 :(得分:1)

this.setState({foo:'bar'},()=> {
   assert this.state.foo === 'bar';
});

这里只是修改了排序逻辑,在你的代码中你确保较小索引的元素得分较小。要按降序执行,您只需要执行相反的操作。

干杯!

答案 1 :(得分:0)

更新您的代码,如下所示:

if (scoresArry[i] < scoresArry[j]) 

答案 2 :(得分:0)

我建议你定义一个类Student并定义你的比较器进行排序(参见:http://www.baeldung.com/java-sorting