如何按升序对第一行然后在第二行和最后在第三行中的数字进行排序但保存列顺序?

海森堡

如何按列值按升序对第一行中的数字进行排序,然后在第二行中对数字进行排序,最后在第三行中排序。例如,我有以下数组:

  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;
}
宫本兔

如果您不需要多次迭代,EG 不必打印出步骤,那么只需创建一个Comparator检查第一行的单个,然后检查第二行,依此类推...

像这样的东西:

public Comparator<Number[]> comp = (Number[] a, Number[] b) ->
{
  for ( int i = 0; i < a.length; ++i )
    if ( !a[i].equals( b[i] ) )
      return a[i].compareTo( b[i] );
  return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何格式化第一行的第二行和第三行?

来自分类Dev

将CSV文件中的第一行和第三行转换为Shell Sripts中的列

来自分类Dev

每行第一,第二和第三行读取一个txt文件,并保存在3个不同的列表中

来自分类Dev

使用LIMIT函数显示第一行,第二行和第三行,使用MySQL的MAX客户评分

来自分类Dev

在第一行空白和第三行空白之间选择单元格,然后粘贴到另一张工作表中

来自分类Dev

如何在Visual Basic中阅读文本文档的第二行和第三行?

来自分类Dev

循环跳过正在读取的文本文件的第一行,为第二行工作,但也不读取第三行

来自分类Dev

为什么这个 C++ 程序适用于第一行输入而不适用于第二行或第三行?

来自分类Dev

如何通过将第一行除以第三行来创建一行

来自分类Dev

通过servlet在oracle中获取表的第二行,第三行... 200行

来自分类Dev

如何制作帕斯卡三角形。意思是第一行是 1,第二行是 1,1,第三行是 1,2,1

来自分类Dev

第二行和第三行应为单行

来自分类Dev

仅从CSV文件的第二行和第三行删除多余的逗号

来自分类Dev

在第二行中查找特定值,并从第三行中显示值

来自分类Dev

在第二行中查找特定值,并从第三行中显示值

来自分类Dev

DictReader字段名称在第三行而不是第一行

来自分类Dev

将背景应用于动态生成的表的第一行和第三行

来自分类Dev

在Pandas中,如何找到一列中每个键的第三行,并添加包含第三行信息的新列?

来自分类Dev

如何使用“ sed或gawk”删除文本块,直到最后一行之前的第三行

来自分类Dev

如何在第三行添加列的总和

来自分类Dev

如何在 Python 中按升序对第一个变量、按自定义顺序的第二个变量和降序的第三个变量对 Python 中的 DataFrame 进行排序

来自分类Dev

如何基于第三行中存在的值创建百分比列?

来自分类Dev

如何检测某些行之前的第三行

来自分类Dev

使换行自动在新列的第三行开始

来自分类Dev

R - 按行查找第一、第二和第三大值

来自分类Dev

如果不是在下一行,如何在每第三行找到带有字符串的行

来自分类Dev

如何删除多个文件中第三行之后的文本

来自分类Dev

如何使用sed替换文件中的第三行?

来自分类Dev

Excel vb宏,复制两行,并在第三行添加一个更改的数字

Related 相关文章

  1. 1

    如何格式化第一行的第二行和第三行?

  2. 2

    将CSV文件中的第一行和第三行转换为Shell Sripts中的列

  3. 3

    每行第一,第二和第三行读取一个txt文件,并保存在3个不同的列表中

  4. 4

    使用LIMIT函数显示第一行,第二行和第三行,使用MySQL的MAX客户评分

  5. 5

    在第一行空白和第三行空白之间选择单元格,然后粘贴到另一张工作表中

  6. 6

    如何在Visual Basic中阅读文本文档的第二行和第三行?

  7. 7

    循环跳过正在读取的文本文件的第一行,为第二行工作,但也不读取第三行

  8. 8

    为什么这个 C++ 程序适用于第一行输入而不适用于第二行或第三行?

  9. 9

    如何通过将第一行除以第三行来创建一行

  10. 10

    通过servlet在oracle中获取表的第二行,第三行... 200行

  11. 11

    如何制作帕斯卡三角形。意思是第一行是 1,第二行是 1,1,第三行是 1,2,1

  12. 12

    第二行和第三行应为单行

  13. 13

    仅从CSV文件的第二行和第三行删除多余的逗号

  14. 14

    在第二行中查找特定值,并从第三行中显示值

  15. 15

    在第二行中查找特定值,并从第三行中显示值

  16. 16

    DictReader字段名称在第三行而不是第一行

  17. 17

    将背景应用于动态生成的表的第一行和第三行

  18. 18

    在Pandas中,如何找到一列中每个键的第三行,并添加包含第三行信息的新列?

  19. 19

    如何使用“ sed或gawk”删除文本块,直到最后一行之前的第三行

  20. 20

    如何在第三行添加列的总和

  21. 21

    如何在 Python 中按升序对第一个变量、按自定义顺序的第二个变量和降序的第三个变量对 Python 中的 DataFrame 进行排序

  22. 22

    如何基于第三行中存在的值创建百分比列?

  23. 23

    如何检测某些行之前的第三行

  24. 24

    使换行自动在新列的第三行开始

  25. 25

    R - 按行查找第一、第二和第三大值

  26. 26

    如果不是在下一行,如何在每第三行找到带有字符串的行

  27. 27

    如何删除多个文件中第三行之后的文本

  28. 28

    如何使用sed替换文件中的第三行?

  29. 29

    Excel vb宏,复制两行,并在第三行添加一个更改的数字

热门标签

归档