我有两个文件:
一个文件存储 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)
.