Course4搜寻Search.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Course4搜寻Search

Algorithms (Dr. Shi-Jay Chen, National United University) Course 4 搜尋 Search ▓ Outlines 本章重點 Search 分類觀點 Linear Search Binary Search Interpolation Search Hashing ▓ Search 分類觀點 Internal Search v.s. External Search. Static Search v.s. Dynamic Search. Partial Key v.s. Whole Key Actual Key v.s. Transformation Key Internal Search v.s. External Search 觀點: 資料量的多寡 Internal Search: Def: 資料量少,可以一次全部置於Memory中進行search之工作 External Search: Def: 資料量大,無法一次全置於Memory中,須藉助輔助儲存體 (E.g. Disk),進行分段search之工作 B-tree M-way Search tree Static Search v.s. Dynamic Search 被搜尋的資料集合、資料的搜尋範圍、或資料所存在的表格,其內容是否經常異動 (如: 是否常做資料的插入、刪除或更新) ? 否: Static 紙本的字典、電話簿 是: Dynamic 日常交易資料、電腦字典 ▓ Linear Search (線性搜尋) Def: 又稱Sequential Search。 自左到右 (或右到左),逐一比較各個記錄的鍵值與搜尋鍵值是否相同。 若有找到,則Found (成功搜尋); 若Search完整個資料範圍仍未找到,謂之失敗 (Not found)。 特質: 檔案記錄不須事先排序 可由Random Access (e.g., Array) 或Sequential Access (e.g., Link List) 機制支援 Time Complexity: O(n),n為資料個數 (∵線性) Linear Search的演算法可分成兩種: Non-Sential (無崗哨) Linear Search Sential Linear Search Non-Sential Linear Search 分析 平均比較次數 (針對 “成功” 的搜尋): (1+2+3+…+n)/n = n(n+1)/2?1/n = (n+1)/2 ?Time: O(n) Sential Linear Search 分析 以實際的執行時間而言: 由於少了 “測試Search範圍是否結束” 之比較 (即: location = n),所以當n極大時,大約可以省下 ? 的比較時間。 以Time Complexity分析而言: 由於仍然是線性搜尋,所以時間複雜度還是 O(n)。 ▓ Binary Search (二分搜尋) 實施前提: 檔案中記錄須事先由小到大排序過 須由Random (或Direct) access之機制支援 (e.g., Array) 觀念: 每次皆與Search範圍的中間記錄進行比較!! while ( l ? u ) 比較 (k, S[m]) case “=”: found, i = m, return i; case “”: u = m-1; case “”: l = m+1; recurn 0; Algorithm Recursion Version: Iteration Version: 分析 利用Time function T(n) = T(n/2) + O(1) = T(n/2) + c = (T(n/4 + c)) + c = T(n/4) + 2c = (T(n/8) + c) + 2c = T(n/8) +3c = … = T(n/n) + log2n?c = T(1) + c log2n (T(1) = 1, c 為大於 0 的常數) = 1 + c log2n ? T(n) = O(log2n) ▓ Interpolation Search (插補搜尋) 比較符合人類Search之行為 實施前提: 檔案中記錄須事先由小到大排序過 須由Random (或Direct) access之機制支援 (e.g., Array) 作法: while ( l

文档评论(0)

jiayou118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档