web-dev-qa-db-ja.com

実世界でのスプレイツリーの使用法は何ですか?

バランスの取れた探索木について学ぶことにしたので、2-3-4とスプレイの木を選びました。実世界でのスプレイツリーの使用例は何ですか?

このコーネルでは: http://www.cs.cornell.edu/courses/cs3110/2009fa/recitations/rec-splay.html スプレーツリーは「良い例はネットワークルーターです。 '。しかし、残りの説明から、ネットワークルーターのようなシームは、ルックアップ時間がO(log n)ではなく一定であるため、スプレイツリーではなくハッシュテーブルを使用します。

6
Meena

ハッシュテーブルにはaverageO(1)のアクセス時間しかないことに注意することが重要です。これは、特定の操作が大幅に悪化する可能性があることを意味します。さらに、適切に形成されたハッシュツリーにはいくつかの要件があります。

  • ほとんど空-70%を超える使用率のハッシュアルゴリズムはほとんどなく、ほとんどが50%の使用を推奨しています。
  • 衝突処理は複雑です-「保存された値」としてリストを使用する必要があるか、最悪の場合の線形検索時間を受け入れる必要があります
  • ハッシュコスト-ハッシュ操作を実行する必要があり、多くの作業が必要になる場合とそうでない場合があります

コースでは、多くのルーターでこれらの問題が解決されており、ストレージにハッシュテーブルを使用していると述べているようです。ただし、スプレイツリーにはいくつかの利点があります。

  • オーバーヘッドなし-10 MBをストレージに割り当てると、実行時間を調整せずに10 MB相当のデータを取得できます
  • 最近のアクセス設定-最近のデータへのアクセスがより簡単になり、ルーターはより最近のデータに頻繁にアクセスします(新しいネットワークノードは通信する可能性が高く、ほとんどのネットワークは均等に使用されません)
  • ダンプは問題ありません-保管しているものによっては役立つ場合があります
  • シンプルな実装-ルーターは通常、かなり弱いプロセッサで実行され、更新が非常に難しいため、シンプルさは素晴らしいです

残念ながら、これはあなたの質問に直接答えることはできませんが、うまくいけば、それがなぜそうであるのかについていくつかの光を放つでしょう.

ところで、ルーターが移動した理由に関するいくつかの注意事項を以下に示します(これらには利点があります)。

  • RAM=のコストにより、ストレージサイズが増加し、物事をメモリに保持する機能がより簡単になりました
  • 適切に保守されている場合、ハッシュテーブルはすべての要素に常にアクセスできます
  • ハッシュテーブルは、必要に応じてデュープを処理できます。
  • ルーターメーカーは通常、長寿命であり、時間の経過とともに複雑性の問題を克服できます
4
Guvante