私はいくつかの効率的な実装はC + +でプレフィックスツリーやFP-ツリーまたは類似しているこれらのC++ FP-ツリーまたはPrefixツリー
(100) - (102) - (103) - (104,106) - (108)
(101) - (103)
(102) - (106)
などの一部の配列を有していますか?
私はいくつかの効率的な実装はC + +でプレフィックスツリーやFP-ツリーまたは類似しているこれらのC++ FP-ツリーまたはPrefixツリー
(100) - (102) - (103) - (104,106) - (108)
(101) - (103)
(102) - (106)
などの一部の配列を有していますか?
私はあなたが何を言っている理解し...しかし、あなたはここでFPツリーを構築する必要がある場合、私はのために同様のアルゴリズムを研究していたとき、私は
与えられたデータが標準表記ではないように見えるので、あなたが持っているものが正確にはわかりません。
接頭辞が整数値の間にある少数の共有された最初の10進数である場合、おそらくデータ格納に大きな違いはありません。データ構造に値を挿入する前に100
を引いて、値をchar
として保存し、取得後に100を追加することもできますが、おそらくそれは価値がありません。
おそらく、vector
要素がソートされているstd::deque< std::vector<int> >
としてシーケンスのシーケンスを格納する必要があります。私が見ることができないか、問題を誤解しているパターンがない限り、与えられた数を含むシーケンスを見つけるのに最適な性能は、シーケンス長さO(lg N)のシーケンス数ではO(N) 。
彼らがどのように私のデータを構造化されているにもかかわらず見つけた.. 私は私が格納することができるデータ構造を持っているシーケンス、例えばabc、de、f 特に私が必要とするのは、シーケンスxが既に格納されているシーケンスと同じプレフィックスを持つ場合、効率的に検索することです。 例:abc- d-と abcがいくつかのプレフィックスsequnzaと等しい場合は、効率的に見えます。プレフィックスツリーを使用してこれを行うには、他のものがあります – Safari
GgSalent:しかし、あなたの例には一般的なシーケンスプレフィックスは含まれていません。あなたは、減速し、校正し、誤字を訂正する必要があります。私はこのことの多くを理解できません。 – Potatoswatter
を見つけた最良のページですありません独自の実装、私は[redixtree](http://code.google.com/p/radixtree/) – Yappie