ランダムに構築された二分探索木が対数の高さを持っていることの証明


10

どのようにランダムに組み込まれての期待の高さということを証明しますバイナリ検索ツリーnノードがあるO(logn)?CLRS アルゴリズム入門(12.4章)には証明がありますが、理解できません。


1
どの質問?どんな例?詳細を編集してください。
Ran G.

3
略語(BSTなど)の使用は避け、ほとんどの人がCLRSブックを持っていないと想定してください。ここに定理をコピーして、理解できないことを説明できれば、さらに多くの答えが得られます。
Ran G.

2
これは、バイナリ検索ツリーの構築方法に依存します。(結果がそうでなかったとしても、証明はします。)さらにいくつかの詳細が役に立つでしょう。
Peter Shor、2012年

回答:


21

まず直感的に考えてみましょう。最良のシナリオでは、ツリーは完全にバランスが取れています。最悪のシナリオでは、ツリーは完全に不均衡です。

高さバランスのとれた二分探索木最悪の場合の二分探索木

pn=i=0h2i=2h+11hn2h+11hlog2(n+1)1log2nO(logn)n1O(n)

{1,2,,n}n

heighttree=1+max(heightleft subtree,heightright subtree)
ithi1nihn=1+max(hi1,hni)E[hn]=1ni=1n[1+max(hi1,hni)]

Yn=2hnYn=2×max(Yi1,Yni)

E[Yn]=i=1n1nE[2×max(Yi1,Yni)]=2ni=1nE[max(Yi1,Yni)]
1nici=ciiE[ax]=aE[x]maxXYE[max(X,Y)]E[max(X,Y)+min(X,Y)]=E[X]+E[Y]
E[Yn]2ni=1n(E[Yi1]+E[Yni])=2ni=0n12E[Yi]
i=1Yi1=Y0Yni=Yn1i=nYi1=Yn1Yni=Y0Y0Yn1E[Yn]4ni=0n1E[Yi]

この時点で、CLRSは帰納証明を数学的な経験のレパートリーから引き出します。ユーザーが証明するためにユーザーに残したIDが含まれています それらの選択について重要なことは、その最大項がであることであり、ように指数関数的な高さを使用していることを思い出してください。おそらく誰かがこの特定の二項式が選ばれた理由をコメントするでしょう。ただし、一般的な考え方は、一定のに対して式を繰り返しの上からバインドすることです。E[Yn]14(n+33)i=0n1(i+33)=(n+34)n3Yn=2hnhn=log2n3=3log2nO(logn)nkk

1つのライナーで終了するには:

2E[Xn]E[Yn]4ni=0n1E[Yi]14(n+33)=(n+3)(n+2)(n+1)24E[hn]=O(logn)

WOW.THANKS !!!! 期待値についてはわかりませんが、このような方法は理にかなっています。私はアルゴリズムを実行する前に慎重な数学のコースをしていませんでした。疑問がある場合は、コメントを投稿します。Merbsに感謝します。
user1675999 2012年

しかし、なぜ指数関数の高さが選択した2項式以下になるのでしょうか。最大の項が異なる他の二項式を選択してまったく同じ計算を実行できない理由はまだわかりません...おそらく私は愚かですが、理由がわかりません...そしてこの時点までの証明完全に理にかなっているので、彼らは完全に何かを完全に取り除く必要があり、説明なしでそれが彼らが正しいことを「証明」していると私たちに告げます...
Zeks

@Zeksしたがって、より大きな項を持つ他の二項式を選択できます。項が依然として多項式(n^k)の場合、kbig-O表記法でドロップされている(方法3がドロップされた)ため、結論は同じです。しかし、指数(e^n)を代入しても、タイトな上限ではなく、正しい上限になります。予想される高さは少なくとも対数であることがわかっているため、最大で対数であると判断すると、高さが厳しくなります。
Merbs 2013

@DavidNathan私はあなたの懸念を理解していません-1 / nが定数であるのか、それとも合計の外に移動できるのか疑問に思いますか?定数2と同様に、残りの証明を簡略化するために、主に説明のために省略されています。
Merbs 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.