如何找到矩阵排序的下限?

Posted

技术标签:

【中文标题】如何找到矩阵排序的下限?【英文标题】:How can the lower bound for matrix sorting be found? 【发布时间】:2013-01-24 12:27:18 【问题描述】:

考虑对n x n 矩阵进行排序的问题(即行和列按升序排列)。我想找出这个问题的下限和上限。

我发现它是O(n^2 log n),只需对元素进行排序,然后输出第一个n元素作为第一行,接下来的n元素作为第二行,以此类推。 但是我想证明它也是Omega(n^2 log n)

在尝试了更小的示例之后,我想我应该证明,如果我可以使用少于 n^2 log(n/e) 的比较来解决这个问题,那么它将违反 log(m!)m 元素进行排序所需的比较下限。

关于如何证明这一点的任何想法?

【问题讨论】:

【参考方案1】:

看看http://en.wikipedia.org/wiki/Sorting_algorithm#Comparison_of_algorithms。

您的问题听起来好像您只是在对 n² 元素而不是 n 进行排序,因此“O(n² log n²)”可能对例如合并排序有效。

如果第一行中的前 n 个元素不必自己排序,它可能会更快,但不是必须的,这取决于算法。

最后但同样重要的是,尝试一些例子并不能证明什么,尤其是那些统计数据不起作用的小例子(它们甚至没有表明什么)

【讨论】:

以上是关于如何找到矩阵排序的下限?的主要内容,如果未能解决你的问题,请参考以下文章

我如何向 Google ortools 添加一组值而不是下限和上限?

如何在 14x14 numpy 矩阵中找到 10 个最高数字的索引? [复制]

重新排序相关矩阵图的轴标签

如何根据排序的数字矩阵对字符矩阵进行排序?

Reporting Services:如何对矩阵列应用交互式排序?

如何使用 Thrust 对矩阵的行进行排序?