コンテンツにスキップ

Treap

出典: フリー百科事典『ウィキペディア(Wikipedia)』

Treap (ツリープ)は、乱択アルゴリズムを使用した平衡2分探索木の1つ。1989年に Cecilia R. Aragon と Raimund Seidel が発表した[1][2]。平衡2分探索木のアルゴリズムの中ではアルゴリズムが単純であり、コード量が少なくてすむ。Treap という名称は Tree (木構造)と Heap (ヒープ)という2つの単語を組み合わせて作られた。

アルゴリズム

[編集]

各ノードに乱数を割り振る。そして、この乱数値に基づいて、二分ヒープを作る。二分ヒープにおいて、子の左右は無規定だが、この部分を2分探索木のルールに基づき、(乱数値の方ではなく、本来のノードの値に基づき)左の子ノードは親ノードよりも小さくし、右の子ノードは親ノードよりも大きくする。乱数で作られた2分ヒープの高さは、O(log n) であるため、treap の木の高さは O(log n) になる。

より具体的には、挿入時は、乱数値を無視して、2分木として適切な葉に追加し、そこから、木の回転を使い、2分ヒープが成立するように、親方向へノードを上げていく。削除時は、木の回転を使い、葉まで降ろし、そして削除する。探索などは、通常の2分探索木と同一。

関連項目

[編集]

参照

[編集]
  1. ^ Aragon, Cecilia R.; Seidel, Raimund (1989), “Randomized Search Trees”, Proc. 30th Symp. Foundations of Computer Science (FOCS 1989), Washington, D.C.: IEEE Computer Society Press, pp. 540–545, doi:10.1109/SFCS.1989.63531, ISBN 0-8186-1982-1, http://faculty.washington.edu/aragon/pubs/rst89.pdf 
  2. ^ Seidel, Raimund; Aragon, Cecilia R. (1996), “Randomized Search Trees”, Algorithmica 16 (4/5): 464–497, doi:10.1007/s004539900061, http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.30.8602 
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy