【发布时间】:2014-11-05 23:50:33
【问题描述】:
正如标题所暗示的,我有一个包含按 A-Z 排序的词汇表(每个在一行上)的文件,我想检索具有给定前缀的所有词汇表。 问题在于该文件包含多个 A-Z 排序运行,每个运行代表不同的语言。对数据文件进行预处理是不可能的,因为您无法确定排序运行的长度,所以我想不出比简单地遍历整个文件并比较需要 O(n) 的运行更好的方法。用这个奇怪的排序文件有可能实现 O(logN) 吗?
【问题讨论】:
-
你能确定一个排序运行的最小长度吗?如果可以,那么您可以使用它来跳过以识别已排序的运行,而无需查看大多数行。
-
@btilly 我不能假设任何事情,因为我所拥有的只是一个数据文件,设计应该容忍任何事情。
-
你能数出每行的字符数吗? (每个字典的字面长度)
标签: algorithm sorting search full-text-search