我有一个字符串和int对的数组。我想搜索字符串并按照相应的int值的顺序列出它们。
class WordClass
{
public string Word;
public int Relevance;
}
WordClass words[];
我想为此实现索引算法,但不知道要使用什么算法。
在SQL中它将是这样的:
SELECT word FROM table WHERE word like 'ab%' order by relevance
我创建了一个AVL树,但我意识到一个AVL树并不适合这个目的。
算法应该非常快。
谢谢
答案 0 :(得分:0)
如果您想查找以前缀开头的所有单词,那么Trie(http://en.wikipedia.org/wiki/Trie)是一个很好的数据结构。您可以获取所有单词,然后按相关性对它们进行排序。
但是,如果您只想选择前k个最高相关单词,这将不会非常有效。