2

本質的にハッシュベースのルックアップである現在のインデックス作成の実装よりも高速であるかどうかをテストしたいので、インデックス作成にツリー構造を使用して実験することを考えています。

Bツリー、AVLツリー、赤黒ツリーのパフォーマンスに関するさまざまな質問や記事を読んだことがありますが、パフォーマンスの面でそれらの違いはあまりわかりません。

人々が推奨するツリー構造とその理由は何ですか?理想的には、既存の.Net実装が利用可能である必要がありますが、必要に応じて独自の実装を行うことを嫌がりません。

4

2 に答える 2

5

優れたハッシュテーブルは、ほとんどの場合、ツリーよりも高速です。ツリーの大きな利点は、範囲のクエリと順序付けに使用できることです。したがって、これらの機能が必要ない場合は、ハッシュベースのソリューションの最適化を検討したいと思います.

そしてAFAIKSortedDictionary<K,V>はツリーベースです。

于 2010-10-14T11:20:58.273 に答える
1

二分木はバランスが取れていません。使用しないでください。

AVLツリーは、赤黒木よりもバランスが取れています。ルックアップが高速です。

さらに重要なことに、AVLアルゴリズムは単純で理解しやすいものです。これはIMEであり、赤黒アルゴリズムには当てはまりません。理解していないアルゴリズムを実装することはできません。むしろ、盲目的に実装することができます。これは、私の見解では、それらを実装できないことと同じです。

于 2010-10-15T14:20:12.210 に答える