我有很多字符串要与搜索词匹配。
例子:
folks
fort
garage
grabbed
grandmother
habit
happily
harry
heading
hunter
我想搜索字符串“ha”和算法,返回列表的开头,其中字符串以“ha”开头,在本例中为“havity”。
当然我不会一个接一个地去,因为名单很庞大。我可以做一些预处理来对列表进行排序,或者将其放入一个结构中,使这种搜索变得更快。
有什么建议吗?
最佳答案
好吧,你想要一个分类结构的某种类型。你可以用一棵树或者一棵根茎树(根茎可以节省一些空间)这样的开销将是排序操作或插入已排序数据结构的开销。但是,一旦排序后,二进制搜索将提供logN+1
最差的查找性能。
注意Lucene
使用基数树afaik
关于algorithm - 使用什么算法来匹配字符串的开头,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14268124/