我有一个二维数组,我只需要对它的行进行排序,我已经完成了这个代码:
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 所提到的,你没有经历过所有的价值观,这是一种可能的方法:
for (int row = 0; row < arr.length; row++) {
for (int column = 0; column < arr.length - 1; column++) {
double min = arr[row][column];
int index = column;
for (int j = column + 1; j < arr.length; j++) {
if (min > arr[row][j]) {
min = arr[row][j];
index = j;
}
}
if (index != column) {
arr[row][index] = arr[row][column];
arr[row][column] = min;
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句