3

自己平衡二分木に関するいくつかのQ&Aを読みましたが、それらすべてに精通しているわけではありません。

私が知った最初のものはAVLで、2番目は赤黒木です。

私がよく理解していないことがあります。いくつかの本や記事によると、AVLは赤黒木よりも少し速く検索を実行できます。これは理解できます。

  1. では、AVLに対する赤黒木のエッジは何ですか?

  2. AVLでは、おそらく挿入のたびにバランスをチェックする必要がありますが、赤黒木ではそのようなことを頻繁に行う必要はありませんよね?

PS:私はSOで似たようなものを検索しましたが、満足のいく答えは得られませんでした。何人かの友人が私に自己平衡木の詳細な比較を教えてくれることを願っています。

4

1 に答える 1

2

AVLツリーには次のプロパティがあります。各ノードから、左右のサブツリーの高さの差は最大2です。

一方、赤黒木では、任意のノードの左または右のサブツリーの高さは、他のツリーの高さの最大2倍です。つまり、最大で2倍の違いがあります。

これは、AVLツリーのルックアップが平均して実際に高速であることを直感的に示しています。

ただし、ノードを挿入または削除する場合は、AVLツリーのバランスをより頻繁に調整して、より厳密な高さの不変条件を維持する必要があります(一方、赤黒木のリバランスはアルゴリズム的にはるかに複雑です)。これは、実際には、特に頻繁に変更される場合、赤黒木がAVL木よりもはるかに優れたパフォーマンスを発揮する可能性があることを意味します。

于 2011-08-27T15:31:49.150 に答える