对矩阵按行和按列进行排序

Posted

技术标签:

【中文标题】对矩阵按行和按列进行排序【英文标题】:Sort the matrix row-wise and column-wise 【发布时间】:2018-10-02 19:31:10 【问题描述】:

Geeksforgeeks 上提供了该解决方案,但概念尚不清楚。 如果我先对所有行进行排序,然后对列进行排序,反之亦然。该方法似乎适用于某些测试用例。我想知道是否有人可以提出一个失败的测试用例。

给定一个矩阵,目标是按行和列对矩阵进行排序,以便在两个方向上保持递增顺序。

例如:

enter code here
Input : mat[][] =4, 1, 3
                9, 6, 8
                5, 2, 7
Output : 1 3 4
         2 5 7
         6 8 9

如需进一步参考,请参阅此链接 https://www.geeksforgeeks.org/sort-matrix-row-wise-column-wise/

【问题讨论】:

“它会起作用”是什么意思?目前尚不清楚您要完成什么。您能否提供更多详细信息或可能提供一些示例输入和预期输出? 您应该提供Minimal, Complete, and Verifiable 标准。它可以帮助我们帮助您。 听起来您正在对行和列进行单独排序。您需要同时使用嵌套的for 循环对它们进行排序。正如您所提到的,GeeksForGeeks 示例是您想要的目标。 【参考方案1】:

你是对的,问题是不明确的。解决方案不是唯一的,并且对第一行和第二列进行排序的结果与对第一列和第二行排序的结果不同。

Columns, Rows
4 8 2      3 1 2      1 2 3
7 6 9  ->  4 6 5  ->  4 5 6
3 1 5      7 8 9      7 8 9

Rows, Columns
4 8 2      2 4 8      1 3 5
7 6 9  ->  6 7 9  ->  2 4 8
3 1 5      1 3 5      6 7 9

注意这两个结果是如何“按行和列排序”的,即同一行上的所有项目都已排序,同一列上的所有项目都已排序。

另外值得注意的是,并不是所有的解决方案都是通过这些方式排序找到的,例如:

1 4 7
2 5 8
3 6 9

【讨论】:

能否请您详细说明最后一个示例。据我了解,该方法在此示例中运行良好,因为它有一个矩阵,其中元素按行和列排序。谢谢 最后一个例子是另一个可能的结果(对于与前两个例子相同的输入矩阵),它是按行和列排序的,但不能通过先行再列或先列再行排序得到。不过,这仍然是一个可以接受的答案,这意味着网站上提出的算法无法找到该问题的所有可能解决方案。所以要么问题没有正确定义,要么算法不正确

以上是关于对矩阵按行和按列进行排序的主要内容,如果未能解决你的问题,请参考以下文章

如何按行和按列随机化(或置换)数据框?

pandas实现两个dataframe数据的合并:按行和按列

如何在动态数据透视中先按行排序,然后按列排序

如何按列和按行标准化我的数组在 0 和 1 之间

Excel小技巧-你是否只知道表格按列排序?其实也可以按行排序!excel数据按行排序

.数据结构与算法基础(重点)