【发布时间】:2022-01-25 20:20:47
【问题描述】:
如何在 Java 中使用冒泡排序基于一维(双)数组对一维(字符串)数组和二维(整数)数组进行排序。 我设法根据双数组对字符串数组进行排序,但不知道如何对二维(int)数组进行排序。 二维数组(成绩)中的每一行代表每个学生的多个成绩。 我需要通过使用这种结构(三个数组)来实现目标。 一切都需要根据 finalGrade 数组进行排序。
static void sort(String[] students, int[][] grades, double[] finalGrade) {
double tempFG;
String tempStud;
int t;
//Bubble Sort
for (int i=0; i<students.length-1; i++) {
for (int j=0; j<finalGrade.length-i-1; j++) {
if (finalGrade[j] < finalGrade[j+1]) {
tempFG = finalGrade[j];
tempStud = students[j];
finalGrade[j] = finalGrade[j+1];
students[j] = students[j+1];
finalGrade[j+1] = tempFG;
students[j+1] = tempStud;
}
}
}
}
【问题讨论】:
-
此时,为什么不创建一个 Student 类,将成绩添加为一维数组字段,将最终成绩添加为 int 字段,然后创建学生数组并按此方式进行排序。
-
我知道,您的建议要好得多...但是可以这样排序吗?
-
是的,它可以。我现在正在写答案
-
诀窍是不直接对二维数组进行排序。根据二维数组的排序标准,对索引数组进行排序,数字从
0到n-1。然后使用索引数组生成排序后的元素。问题是我只写了一个C++ solution,但原理是一样的。
标签: java arrays bubble-sort