Created
November 19, 2011 07:42
-
-
Save kazu-yamamoto/1378600 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PFDS: Ex 3.1 | |
定理: | |
Leftistヒープ T において、右のパスの長さが k である場合、 | |
T のノード数 n は | |
n >= 2^(k+1) - 1 | |
である。 | |
証明:T の高さである h について帰納法で証明する。 | |
基底部: h = 0 の場合。 | |
T は単一ノードであり、右のパスの長さは k = 0。 | |
すなわち、n = 1 >= 2^1 - 1。よって成り立つ。 | |
帰納部: h > 0 の場合。 | |
h < i のとき: | |
すべての h < i である leftist ヒープに対して | |
定理が成り立ちと仮定する。 | |
h = i のとき: | |
以下の二つの場合について考える。 | |
場合1:k=0 (Tが右の部分木を持たない場合) | |
明らかに n >= 1 = 2^1 -1 となる。 | |
場合2:k>0。 | |
T の左と右の部分木をそれぞれ T_L と T_R と呼ぶ。 | |
T_L と T_R のノード数をそれぞれ n_L と n_R とおく。 | |
T_L と T_R の右のパスの長さをぞれぞれ k_L と k_R とおく。 | |
T_L と T_R は両方とも leftist ヒープである。 | |
k_R = k - 1 であり、h_R < i であるから仮定より | |
n_R >= 2^k - 1 | |
また、k_L >= k_R であるから、 | |
n_L >= n_R >= 2^k - 1 | |
ここで n = n_L + n_R + 1 であるから、 | |
n >= 2^k - 1 + 2^k - 1 + 1 = 2^(k+1) -1。 | |
よって h = i のときも成り立つ。 | |
導かれる定理:n ノードの leftist ヒープにおける右のパスの長さは、 | |
n >= 2^(k-1) - 1 より k <= |_ log (n+1) _| - 1 である。 | |
高々 |_ log (n+1) _| |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment