gpt4 book ai didi

algorithm - 如何对可变长度的大句子文件进行排序?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:42:11 28 4
gpt4 key购买 nike

假设我有一个包含很多行字符串的文件,如何按照字典顺序对字符串行进行排序?

详细信息:

  • 文件大小约为32GBytes;
  • 每一行可视为一个句子,由空格分隔的单词个数可变,即每一行的长度不固定;
  • 每个单词只包含 ASCII 字符;
  • 我只有 8 GBytes 的内存,但没有无限的磁盘空间;

我能弄清楚的是外部归并排序,对于这个特定问题有没有更好的主意?

最佳答案

文件大小和内存之间的差异并不大,因此我建议根据首字母将文件拆分为更多较小的文件 - 或者如果不够,则根据前两个字母拆分。

然后您可以使用快速排序对它们中的每一个进行排序并保存,然后当它们被排序时,您可以将它们放回一起。

仍然是 O(N) 次 I/O 操作和 O(n*log(N)) 次 CPU 操作。

PS:外部归并排序也是一个好方法。

关于algorithm - 如何对可变长度的大句子文件进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36940908/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com