Presentation is loading. Please wait.

Presentation is loading. Please wait.

2分探索.

Similar presentations


Presentation on theme: "2分探索."— Presentation transcript:

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分探索木 14 13 10 10 13 14

6 2分探索木 8を探索 14 13 10 8を発見

7 2分探索木 7を探索 14 13 10 探索失敗

8 検索時間は木の高さに比例 バランスの悪い木 O(n) バランスの良い木 O(log n)

9 挿入(2分探索木) 7を挿入 13 14 10

10 検索時間の期待値(2分探索木) … … … … 1,2,3,4,5 3,2,4,1,5 全ての順列を考える 1 2 3 4 1 2 計 10
1 2 3 4 1 2 計 10 計 6 Dn = (各計の合計/ n!) = (「深さの合計」の平均) Tn = (Dn÷n) = 「深さの平均」の平均

11 検索時間の期待値(2分探索木) … … … … … … 1,2,3,4,5 ?,?,?,?,? 3,2,4,1,5 全ての順列を考える 1
1 2 3 4 1 1 ? 2 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 削除(内点の子を持たない場合) 10

14 削除(内点の子を1つ持つ場合)

15 削除(内点の子を2つ持つ場合) 10


Download ppt "2分探索."

Similar presentations


Ads by Google