只允许使用 10M 的内存,将一个 10G 的文件中的所有元素排序,请大佬说说有什么好的算法

2018-04-24 21:40:39 +08:00
 vimiix
文件中的数据是"1,2,3,4,5,6...." 这样逗号形式分割存放的数字。
6489 次点击
所在节点    Python
27 条回复
gamecreating
2018-04-25 14:48:02 +08:00
分段写入文件呗 内存占用少 那么 IO 占用就高咯
拿时间换空间
creedowl
2018-04-25 17:35:10 +08:00
时间排序了解一下 :doge:
owt5008137
2018-04-25 18:39:36 +08:00
归并排序+中间结果存磁盘
glacer
2018-04-26 16:05:43 +08:00
@610915518 不可能只有 1-9 吧
RicardoScofileld
2018-04-26 18:58:28 +08:00
要是只有 1-9 就好办了,要是还有别的就麻烦了
610915518
2018-04-26 23:00:00 +08:00
@glacer 就算最大的数有好几百万的,10 MB 内存也够用了。
xyjincan
2018-07-12 11:32:08 +08:00
如果是不重复的数,可以分配一段内存,便利用位操作标记,然后输出,要不就要外部排序。
老师讲过这个题,排序五百万电话号码,

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/449562

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX