【发布时间】:2013-06-10 12:54:53
【问题描述】:
我有两个文件:
一个文件存储10GB的名称“mapping.txt”:
1 "First string"
2 "Second string"
3 "Third string"
...
199000000 "199000000th string"
另一个文件以任意顺序存储来自mapping.txt的整数(存储在file.txt中):
88 76 23 1 5 7 9 10 78 12 99 12 15 16 77 89 90 51
现在我想按照上面整数指定的顺序对“mapping.txt”进行排序,例如:
88 "88th string"
76 "76th string"
23 "23rd string"
1 "1st string"
5 "5th string"
7 "7th string"
如何使用 C++ 完成此任务?
我知道对于文件中的每个整数都可以在“mapping.txt”中执行二进制搜索,但是由于它的时间复杂度为O(n log n),因此对于大文件来说效率不是很高。
我想要一种比0(n log n) 更高效的方法。
【问题讨论】:
-
如果您有答案,请照此发布。关于这个问题是否应该保持开放的元讨论是here。
标签: c++ sorting file-handling