描述
给定 n
个学生的学号(从 1
到 n
编号)以及他们的考试成绩,表示为(学号,考试成绩),请将这些学生按考试成绩降序排序,若考试成绩相同,则按学号升序排序。
代码实现(Java):
/**
* 多关键字排序
*/
public int[][] multiSort(int[][] array) {
for (int i = 0; i < array.length - 1; i++) {
for (int j = i + 1; j < array.length; j++) {
if (!cmp(array[i], array[j])) {
int temp = array[i][0];
array[i][0] = array[j][0];
array[j][0] = temp;
int temp1 = array[i][1];
array[i][1] = array[j][1];
array[j][1] = temp1;
}
}
}
return array;
}
public boolean cmp(int[] a, int[] b){
if (a[1] > b[1]) { // 降序
return true;
} else if (a[1] == b[1] && a[0] < b[0]) { // 升序
return true;
}
return false;
}