截至目前我编写了该程序,并将学生分数从最低到最高排序。我需要将它从最高到最低的位置进行反转。
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]);
}
}
答案 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)