【发布时间】:2012-09-11 07:25:02
【问题描述】:
想象以下场景:我有一个 10 Mb 的整数数组存储在只读存储介质上。我希望按升序打印数字。但是,我只有 2 Mb 的主内存(没有硬盘)。
一个非常简单的 O(n2) 解决方案(不使用可用的主内存)是重复扫描整个输入数组并增量输出下一个最小整数。我尝试在谷歌上搜索更好的排序算法,但答案一直引导我使用就地或外部排序算法,由于只读存储限制,这将不起作用。有没有更好的解决方案?
【问题讨论】:
-
没有其他约束,例如数组中没有重复的整数或范围有限?
-
它们是 32 位整数,允许重复。
标签: algorithm sorting complexity-theory