【发布时间】:2011-02-12 17:06:09
【问题描述】:
给定文件中按字母顺序排序的大量单词列表,我需要编写一个程序,给定单词 x,确定 x 是否在列表中。预处理没问题,因为我将通过不同的输入多次调用此函数。
优先事项: 1.速度。 2. 记忆
我已经知道我可以使用(n 是单词数,m 是单词的平均长度) 1.一个trie,时间是O(log(n)),空间(最好情况)是O(log(nm)),空间(最坏情况)是O(nm)。 2.将完整列表加载到内存中,然后进行二分查找,时间为O(log(n)),空间为O(n*m)
我不确定 tri 的复杂性,如果他们错了,请纠正我。还有其他好的方法吗?
【问题讨论】:
标签: algorithm data-structures complexity-theory