【发布时间】:2021-02-02 16:51:58
【问题描述】:
我需要在 Java 中构建一个方法,其中输入是一个 2D 整数数组,并得到一个 2D 整数数组,其中每个元素引用一行中元素的位置。让我用一个例子来解释一下。
将 7x7 的二维数组视为该方法的输入,如下所示:
int[][] array = new int[][]{
{280, 103, 351, 226, 451, 563, 507},
{173, 71, 40, 100, 396, 315, 442},
{421, 326, 210, 308, 535, 487, 549},
{87, 165, 0, 19, 213, 405, 281},
{25, 0, 104, 195, 298, 238, 223},
{2, 17, 68, 0, 98, 196, 236},
{356, 225, 454, 408, 567, 681, 604}};
我使用了一种方法来根据每一行的值对这个数组进行升序排序。代码如下:
public static int[][] sortRowWise (int m[][]) {
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {
for (int k = 0; k < m[i].length - j - 1; k++) {
if (m[i][k] > m[i][k + 1]) {
int t = m[i][k];
m[i][k] = m[i][k + 1];
m[i][k + 1] = t;
}
}
}
}
// printing the sorted matrix
int[][] mR = new int[m.length][m[0].length];
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[0].length; j++) {
mR[i][j] = m[i][j];
}
}
return mR;
}
输出是:
现在我需要建立一个新的二维整数数组(我将在下面调用newArray):
- “无序”数组中第 0 行的最小值为 103,为
与第 1 列相关联(然后,我需要在
newArray[0][0]。 - 接下来,“无序”数组中第 0 行的最小值为 226
并与第 3 列相关联(然后,我需要在
newArray[0][3]。 - 每行以此类推...
如前所述,该方法的最终输出必须类似于以下二维数组。任何帮助将不胜感激。
【问题讨论】:
标签: java arrays sorting multidimensional-array