Download presentation
Presentation is loading. Please wait.
1
2分探索
2
データ検索 検索: データの保持状態で検索処理の効率は変わるか? 2つの状態では検索処理の効率の差はどの程度?
与えれたキー(探索キー)と等しいキーを、あるデータ集合の中から探す操作 データの保持状態で検索処理の効率は変わるか? データがでたらめの順番で格納されている状態 データが予めソートされて格納されている状態 2つの状態では検索処理の効率の差はどの程度? 単語がでたらめな順で並んでいる辞書での検索 単語が辞書式順で並んでいる辞書での検索
3
2分探索法 10を検索 left left right right 1 4 7 10 11 14 18 3 mid mid mid
10を発見
4
2分探索法 5を検索 left left left right right 1 4 7 10 11 14 18 3 mid mid mid
探索失敗
5
2分探索木 3 2 8 14 13 5 10 2 3 5 8 10 13 14
6
2分探索木 8を探索 8 3 2 8 14 13 5 10 8を発見
7
2分探索木 7を探索 7 3 2 8 14 13 5 10 探索失敗
8
検索時間は木の高さに比例 バランスの悪い木 O(n) バランスの良い木 O(log n)
9
挿入(2分探索木) 7を挿入 7 5 3 13 2 8 14 7 10
10
検索時間の期待値(2分探索木) … … … … 1,2,3,4,5 3,2,4,1,5 全ての順列を考える 1 2 3 4 1 2 計 10
1 1 2 3 4 2 3 1 2 … 2 4 … 3 4 1 5 5 計 10 計 6 Dn = (各計の合計/ n!) = (「深さの合計」の平均) Tn = (Dn÷n) = 「深さの平均」の平均
11
検索時間の期待値(2分探索木) … … … … … … 1,2,3,4,5 ?,?,?,?,? 3,2,4,1,5 全ての順列を考える 1
1 1 2 3 4 2 3 … … … 3 1 1 ? 2 4 4 5 2 1 5 2 計 10 計 ? 計 6 Dn = (各計の合計/ n!) = (「深さの合計」の平均)は何に対応? Tn = (Dn÷n) = 「深さの平均」の平均は何に対応?
12
検索時間の期待値(2分探索木) k 根がkの場合を考える 根がkの場合の深さの総和 = (k-1)(1+ Tk-1) + 0 +
(n-k)(1+ Tn-k) = (n-1) + (k-1)Tk-1 + (n-k)Tn-k = (n-1) +Dk-1 + Dn-k k kは1~nまで動くのでそれの平均 Dn = ∑1≦k≦n (n-1 +Dk-1 + Dn-k ) /n = n-1 + (2/n)∑1≦k≦n-1 Dk = 2(n+1) (Hn+1-2)+2 (演習問題5.6) ⇒ Tn = O(log n) k-1頂点の木 各頂点の深さ の平均=Tk-1 n-k頂点の木 の平均=Tn-k
13
削除(内点の子を持たない場合) 4 6 10
14
削除(内点の子を1つ持つ場合) 9 5 2
15
削除(内点の子を2つ持つ場合) 2 6 4 10 9 8 7
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.