如何按列值的升序对第一行、第二行和第三行中的数字进行排序。例如,我有以下数组:
7 |10 |15 | 7 | 7
5 | 0 | 4 | 3 | 3
1 | 4 | 3 | 2 | 4
然后,我需要通过对第一行进行排序并保存列顺序来转换它:
7 | 7 | 7 |10 |15
5 | 3 | 3 | 0 | 4
1 | 2 | 4 | 4 | 3
在第二次迭代中,我应该得到这样的结果:
7 | 7 | 7 |10 |15
3 | 3 | 5 | 0 | 4
4 | 2 | 1 | 4 | 3
最后:
7 | 7 | 7 |10 |15
3 | 3 | 5 | 0 | 4
2 | 4 | 1 | 4 | 3
我有以下代码对第一行进行排序并按顺序保存列:
Integer k = column.size() - 1;
while (k > 1) {
Integer id = 0;
for (Integer j = 1; j <= k; j++)
if (listWithNumbers[0][j] > listWithNumbers[0][id])
id = j;
for (Integer i = 0; i < listWithNumbers.size(); i++) {
Integer max = listWithNumbers[i][id];
listWithNumbers[i][id] = listWithNumbers[i][k];
listWithNumbers[i][k] = max;
}
k -= 1;
}
我试图重写同样的代码来对第二行进行排序,但排序不正确:
k = column.size() - 1;
while (k > 1) {
Integer id = 0;
for (Integer j = 1; j <= k; j++) {
if (listWithNumbers[0][j-1] == listWithNumbers[0][j])
id = j-1;
for (Integer i = 1; i < listWithNumbers.size(); i++) {
Integer max = listWithNumbers[i][id];
listWithNumbers[i][id] = listWithNumbers[i][k];
listWithNumbers[i][k] = max;
}
}
k -= 1;
}