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

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 个元素不必自己排序,它可能会更快,但不是必须的,这取决于算法。

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

【讨论】:

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