0

string と 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 ツリーを作成しましたが、1 つの AVL ツリーはこの目的にはあまり適していないことに気付きました。

アルゴリズムは非常に高速である必要があります。

ありがとうございました

4

1 に答える 1

0

Trie (http://en.wikipedia.org/wiki/Trie) は、接頭辞で始まるすべての単語を検索する場合に適したデータ構造です。すべての単語を取得して、関連性で並べ替えることができます。

ただし、上位 k 件の最も関連性の高い単語のみを選択したい場合、これはあまり効率的ではありません。

于 2012-09-19T15:42:52.437 に答える