【发布时间】:2018-04-20 12:55:24
【问题描述】:
我有一个二维数组,我只需要对它的行进行排序,我已经完成了这段代码:
double[][] arr = initArray();
for (int row = 0; row < arr.length; row++) {
int index = row;
double minVal = arr[row][0];
for (int column = 0; column < arr[row].length; column++) {
if (arr[row][column] < minVal) {
minVal = arr[row][column];
index = column;
}
}
arr[row][index] = arr[row][0];
arr[row][0] = minVal;
}
示例输入:
{{0.15, 0.875, 0.375},
{0.55, 0.005, 0.225},
{0.30, 0.12, 0.4}}
期待输出:
0.15 0.375 0.875
0.005 0.225 0.55
0.12 0.3 0.4
我得到了什么:
0.15 0.875 0.375
0.005 0.55 0.225
0.12 0.3 0.4
【问题讨论】:
-
二维数组是数组
{ {...}, {...}, {...} }。您当前的代码不对内部数组进行排序,而是在每一行中搜索最小值并将其移动到该行的开头。尝试想办法对一维数组进行排序,然后将其应用于每一行。 -
@Pshemo 感谢您的指点。
-
@jontro 感谢您指出这一点,但这不是重复,我说的是
rows。