1 / 59

第八章 續探計算複雜度:搜尋問題

第八章 續探計算複雜度:搜尋問題. 8.1 僅用 key 的比較進行搜尋之 演算法的時間複雜度下限 8.1.1 最差情況的下限 8.1.2 平均情況的下限 8.2 內插搜尋 8.3 在樹中搜尋 8.3.1 二元搜尋樹 (Binary Search Tree) 8.3.2 B-Tree 8.4 雜湊. 8.5 選拔問題: Adversary Argument 序論 8.5.1 找出最大的 key 8.5.2 一並找到最小與最大的 key

zoie
Télécharger la présentation

第八章 續探計算複雜度:搜尋問題

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第八章 續探計算複雜度:搜尋問題 • 8.1僅用key的比較進行搜尋之 演算法的時間複雜度下限 8.1.1最差情況的下限 8.1.2平均情況的下限 • 8.2內插搜尋 • 8.3在樹中搜尋 8.3.1 二元搜尋樹(Binary Search Tree) 8.3.2 B-Tree • 8.4雜湊

  2. 8.5選拔問題:Adversary Argument序論 8.5.1找出最大的key 8.5.2一並找到最小與最大的key 8.5.3找到次大的key 8.5.4找到第k小的key 8.5.5解選拔問題的 或然式(Probabilistic)演算法

  3. 8.1 僅用key的比較進行搜尋 之演算法的時間複雜度下限

  4. 8.1.1 最差情況的下限

  5. 定理8.1

  6. 8.1.2平均情況的下限

  7. 分析演算法2.1 平均情況的 時間複雜度(二元搜尋,遞迴版) • 基本運算:x與S[mid]的比較 • 輸入大小:n,陣列中key的數目

  8. 節點距離(note distance):從根節點到某節點形成的路徑中含有的節點樹 • 整體節點距離(total note distance,TND):一顆樹中所有節點距離的總和

  9. 定理8.2 • 在所有僅用key的比較,於具有n個相異key的陣列中搜尋key x 的必然式演算法中,假定x在陣列中且x出現在每個陣列單元的機會相等,則二元搜尋法在平均情況的效能已經是最好的。因次在此假定下,任何這種演算法在平均情況下所做比較次數的下限近似於

  10. 8.2內插搜尋

  11. 演算法8.1內插搜尋(Interpolation Search)

  12. 8.3在樹中搜尋 • 靜態搜尋:指搜尋過程中所有的紀錄一次被加到檔案中,並且之後並不會加入新的記錄或刪除紀錄 • 動態搜尋:指搜尋過程中會頻繁的加入或刪除紀錄

  13. 8.3.1二元搜尋樹(Binary Search Tree)

  14. 定理8.3 • 在所有的輸入出現機率相等及key x為n個key中任一個key之機率相等的前提之下,以各種含有n個相異key的輸入建構二元搜尋樹之平均搜尋時間近似於 • 證明:假定要找的keyx位於搜尋樹中。

  15. 8.3.2 B-Trees • 外部搜尋:需執行多次磁碟存取才能完成的搜尋 • 內部搜尋:所有的key都同時存放在記憶體中的搜尋

  16. 8.4雜湊 • 雜湊函數(hash function):可將一個key對應到一個索引的函數 EX: • 沒有任兩個key被雜湊到同一個索引的機率為

  17. 定理8.4 • 若n個key平均分佈在m個bucket中,則在一次失敗的搜尋中,進行的比較次數為n/m • 證明:由於這些key式平均分佈的,因此每個bucket均含有n/ m個key,也就是說每個失敗的搜尋皆必須進行n/m次比較

  18. 定理8.5 • 若n個key平均分佈在m個bucket中,且每個key成為被搜尋的key的機會相等,則一次成功搜尋的平均比較次數為 • 證明:每個bucket的平均搜尋時間等於對n/m個key進行循序搜尋的平均搜尋時間。

  19. 定理8.6 • 若n個key均勻分佈在m個bucket中,至少一個bucket含有至少k個key的機率小於等於  假定一個key雜湊到任一個bucket的機會相等

  20. 表8.1

  21. 8.5 選拔問題:Adversary Argument序論 8.5.1找出最大的key

  22. 演算法8.2找出最大的key

  23. 定理8.7

  24. 8.5.2一倂找到最小與最大的key

  25. 演算法8.3一並找到最小與最大的key

  26. 演算法8.4將key配對一併找出最小與最大key

  27. 定理8.8 • 任一可在各種輸入中,僅靠key的比較,就可由n個key中一併找出最小及最大key的必然式演算法,在最差情況下,必須進行至少下列數量之key的比較:

  28. 8.5.3找到次大的key

  29. 定理8.9 • 僅靠key的比較,能夠在每種可能的輸入中找出次大的必然式演算法,在最差情況下,必須做至少

  30. 8.5.4 找到第k小的key

  31. 演算法8.5選拔

  32. 分析演算法8.5平均情況的時間複雜度(選拔) • 基本運算:在partition副程式中的s[i]與pivotitem比較 • 輸入大小:n,陣列中的項目數

  33. 演算法8.6利用中位數進行選拔

More Related