我陷入了一项任务,我应该使用辅助方法在Java中对2D int数组中的行和列进行排序。明确要求使用两种不同的方法对数组进行排序。无论如何,这里是我的排序行代码
public static void sortOneRow(int[] arr1) {
int temp;
for (int i = 0; i < arr1.length; i++) {
for (int j = i + 1; j < arr1.length; j++) {
if (arr1[i] > arr1[j]) {
temp = arr1[i];
arr1[i] = arr1[j];
arr1[j] = temp;
}
}
}
如果给定一个表示2D数组和列索引的输入参数,则可以对列进行排序:
public static void sortOneColumn(int[][] x, int colNo) {
// Sorting one column
int[] thisCol = new int[x.length];
for (int i = 0; i < x.length; i++) {
thisCol[i] = x[i][colNo];
}
// Sort
sortOneRow(thisCol);
for (int i = 0; i < x.length; i++) {
x[i][colNo] = thisCol[i];
}
现在,我如何在另一个只占用2D数组的方法中调用这两个方法,我必须首先对行进行排序然后对列进行排序?
答案 0 :(得分:1)
如果我理解正确,您希望重用自己的方法来对2D数组进行排序。希望这可以提供帮助:
public static void sort(int[][] a){
if(a == null || a.length == 0) return;
for(int row = 0; row < a.length; row++) {
sortOneRow(a[row]);
}
for(int col = 0; col < a[0].length; col++) {
sortOneColumneRow(a, col);
}
}