类似的问题已经被询问过了,但是从未涉及2D字符串数组,因此经过长时间的尝试,我找不到我想要的。我正在尝试使用BubbleSort在Java中对2D字符串数组进行排序。
作为输入,我会接收一个String的二维数组(表格)和您应该排序的“列”的索引。我应该通过指定列中的值来对行进行排序。
您可以将第一个索引视为行索引,将第二个索引视为列索引。例如,以下Java数组和表格是相互对应的:
为了继续这个例子,table[0][1]将返回值"b",因为它是第0行第1列的项目。
重要提示:我不允许使用Java库中的任何排序算法,例如Arrays.sort。
这是我目前尝试过的内容:
String[][] table = {
{"a", "b"},
{"c", "d"}
};
-
0 1
+---+---+
0 | a | b |
+---+---+
1 | c | d |
+---+---+
为了继续这个例子,table[0][1]将返回值"b",因为它是第0行第1列的项目。
重要提示:我不允许使用Java库中的任何排序算法,例如Arrays.sort。
这是我目前尝试过的内容:
class Solution {
public static void stableSort(String[][] table, int column) {
int i;
int j;
String temp = null;
for (i = 0; i < table.length - 1; i++) {
for (j = 0; j < table.length - 1 - i; j++) {
if (table[i][j].compareTo(table[i][j + 1]) > 0) {
temp = table[i][j];
table[i][j] = table[i][j + 1];
table[i][j + 1] = temp;
}
}
}
}
}
我遇到了索引越界的错误,并且它无法正常工作,因为测试期望在table[0][0]中获得不同的结果。
感谢您的帮助。