![Course4搜寻Search_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/f69111ef-5703-4986-96a5-c2c615280310/f69111ef-5703-4986-96a5-c2c6152803101.gif)
![Course4搜寻Search_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/f69111ef-5703-4986-96a5-c2c615280310/f69111ef-5703-4986-96a5-c2c6152803102.gif)
![Course4搜寻Search_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/f69111ef-5703-4986-96a5-c2c615280310/f69111ef-5703-4986-96a5-c2c6152803103.gif)
![Course4搜寻Search_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/f69111ef-5703-4986-96a5-c2c615280310/f69111ef-5703-4986-96a5-c2c6152803104.gif)
![Course4搜寻Search_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/f69111ef-5703-4986-96a5-c2c615280310/f69111ef-5703-4986-96a5-c2c6152803105.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Course 4Course 4搜尋搜尋SearchSearch國立聯合大學 資訊管理學系 演算法課程 (陳士杰)2 Outlinesu本章重點nSearch分類觀點Linear SearchBinary SearchInterpolation SearchnAdvanced TreeBinary Search TreeAVL TreeM-way Search TreeB-treeExtended Binary TreepWeighted External Path Length (W. E. P. L) & Minimum W. E. P. L國立聯合大學 資訊管理學系 演算法課程
2、(陳士杰)3uInternal Search v.s. External Search.uStatic Search v.s. Dynamic Search. Search 分類觀點分類觀點國立聯合大學 資訊管理學系 演算法課程 (陳士杰)4Internal Search v.s. External Searchu觀點: uInternal Search:nDef: 資料量少,可以一次全部置於中進行search之工作uExternal Search:nDef: 資料量大,無法一次全置於Memory中,須藉助輔助儲存體 (E.g. Disk),進行分段search之工作B-treeM-way S
3、earch tree國立聯合大學 資訊管理學系 演算法課程 (陳士杰)5u被搜尋的資料集合、資料的搜尋範圍、或資料所存在的表格,其內容是否 (如: 是否常做資料的插入、刪除或更新) ?n否: Static紙本的字典、電話簿n是: Dynamic日常交易資料、電腦字典Static Search v.s. Dynamic Search國立聯合大學 資訊管理學系 演算法課程 (陳士杰)6uDef:n又稱。n自左到右 (或右到左),逐一比較各個記錄的鍵值與搜尋鍵值是否相同。n若有找到,則Found (成功搜尋); 若Search完整個資料範圍仍未找到,謂之失敗 (Not found)。u特質:n檔案記
4、錄n可由 (e.g., Array) 或 (e.g., Link List) 機制支援nTime Complexity: ,n為資料個數 (線性) Linear Search (線性搜尋線性搜尋)國立聯合大學 資訊管理學系 演算法課程 (陳士杰)7uLinear Search的演算法可分成兩種:nNon-Sential (無崗哨) Linear SearchnSential Linear Search國立聯合大學 資訊管理學系 演算法課程 (陳士杰)8Non-Sential Linear Search/記錄個數/Array of records (file of records)/欲搜尋的鍵值
5、/輸出的結果 : location指出記錄的所在位置 : location重設為042n531Slocation國立聯合大學 資訊管理學系 演算法課程 (陳士杰)9分析分析u平均比較次數 (針對 “成功” 的搜尋): (1+2+3+n)/n = n(n+1)/21/n = (n+1)/2 Time: 國立聯合大學 資訊管理學系 演算法課程 (陳士杰)10Sential Linear Search/記錄個數/Array of records (file of records)/欲搜尋的鍵值/輸出的結果 : location表示出記錄的所在位置 : location為0locationu觀念: 多
6、一個S0記錄,其鍵值設定為x42n531S0 x國立聯合大學 資訊管理學系 演算法課程 (陳士杰)11分析分析u以而言:n由於少了 “” 之比較 (即: ),所以當n極大時,大約可以省下 的比較時間。u以而言:n由於仍然是線性搜尋,所以時間複雜度還是 。國立聯合大學 資訊管理學系 演算法課程 (陳士杰)12 Binary Search (二分搜尋二分搜尋)u實施前提:n檔案中記錄須事先排序過n須由之機制支援 (e.g., Array)u觀念:n每次皆與Search範圍的進行比較!while ( l u )比較 (k, Sm) case “=”: found, i = m, return i;
7、case “”: = m+1;recurn 0;小小 大大 2middleul 2mullumiddleulmmS/找到了找到了/要找的資料在要找的資料在左半部左半部/要找的資料在要找的資料在右半部右半部國立聯合大學 資訊管理學系 演算法課程 (陳士杰)13uRecursion Version:Algorithm國立聯合大學 資訊管理學系 演算法課程 (陳士杰)14uIteration Version:國立聯合大學 資訊管理學系 演算法課程 (陳士杰)15分析分析u利用Time function T(n) = T(n/2) + O(1) = T(n/2) + c = (T(n/4 + c) +
8、 c = T(n/4) + 2c = (T(n/8) + c) + 2c = T(n/8) +3c = = T(n/n) + log2nc = T(1) + c log2n (T(1) = 1, c 為大於 0 的常數) = 1 + c log2n T(n) = O(log2n)國立聯合大學 資訊管理學系 演算法課程 (陳士杰)16 Interpolation Search (插補搜尋插補搜尋)u比較符合人類Search之行為u實施前提:n檔案中記錄須事先排序過n須由之機制支援 (e.g., Array)u作法:while ( l u & i = 0)比較 (x, Smid) case
9、 “=”: found, i = mid, return i; case “”: = mid+1;recurn 0;小小 大大) 1(lulSuSlSxm) 1(lulSuSlSxlmidluS/找到了找到了/要找的資料在要找的資料在左半部左半部/要找的資料在要找的資料在右半部右半部l + m( m 是一個比較的距離)國立聯合大學 資訊管理學系 演算法課程 (陳士杰)17Algorithm/若S數列中只有一個數字時,防止分母為0Case Case Case 國立聯合大學 資訊管理學系 演算法課程 (陳士杰)18分析分析u其時間分析的效能是與鍵值分佈有關。一般而言,Uniform Distrib
10、ution有Best effect.uTime Complexity: n最佳情況: 同Binary Search 每一次都切一半n最差情況: 同線性Search 第一次切割後,會剩下 (n-1); 第二次切割後,會剩下 (n-2)筆; 依此類推。即每一次切割後,只有一筆資料被摒除於下一次的搜尋資料之外。國立聯合大學 資訊管理學系 演算法課程 (陳士杰)19 Hashing (雜湊雜湊)uDef: 為一種資料貯存與搜尋的技術。若要存取某筆資料x,則先將x經過計算,得出,再到對應的中進行存取x的動作。uHash Table的結構n由一組Buckets所組成,每個Buckets由一組Slot所組成
11、,每個Slot可存一筆記錄。n圖示: Hash Table Size = b sHash TableBucket (桶子桶子)Slot (槽槽)b 個個s 個個xHashingFunctionH(x)(Hash Address)存存 / 取取國立聯合大學 資訊管理學系 演算法課程 (陳士杰)20國立聯合大學 資訊管理學系 演算法課程 (陳士杰)21u優點:n資料搜尋時,記錄不需要事先排序n在沒有collision及overflow情況下,資料搜尋的Time為 O(1)與資料量 n 無關n保密性高若不知Hashing function,則無法存取資料n可作資料壓縮之用國立聯合大學 資訊管理學系
12、演算法課程 (陳士杰)22相關術語相關術語uIdentifier Density 與 Loading DensitynDef: 令T為identifier總數,n為目前使用者的identifier個數,b為Hash Table之Bucket數目,S為Bucket中之Slot數目,則:Identifier Density = n/TLoading Density = n/(bS) = p 愈大,則表示Hash Table Utilization高,但相對地Collision / Overflow機率也變高。uCollisionnDef: 不同的資料 (e.g., x與y) 在經由Hashing
13、Function計算,竟得出相同的Hashing Address (即 H(x) = H(y) 稱之。國立聯合大學 資訊管理學系 演算法課程 (陳士杰)23uOverflownDef: 當Collision產生,且Bucket中無多餘的Slot可存資料稱之。n有Collision並不一定有Overflow,但有Overflow,則必有Collision發生。n若Bucket只有一個Slot,則Collision = Overfloww H(w)wx H(x)xy H(y)yz H(z)z: Overflow國立聯合大學 資訊管理學系 演算法課程 (陳士杰)24Hashing Function設
14、計設計u一個良好的Hashing Function須滿足下列三個準則:Ex: x mod 2就是不好的Hashing Function! (不是0就是1,會經常發生Collision)會引發 “空間利用度差” 與 “Collision上升” 的缺失u上述準則導引出兩個名詞: (完美的雜湊函數)Def: 此Hashing Function 絕對不會有Collision發生前提: 須先知道所有資料 (for Static Search) (均勻的雜湊函數)Def: 此種Hashing Function計算所得出的Hashing Address,對應到每個Bucket No.的機率皆相等。(不會有局
15、部偏重的情況)國立聯合大學 資訊管理學系 演算法課程 (陳士杰)254種常見的種常見的Hashing FunctionuMiddle Square (平方值取中間位數)uMod (餘數,或 Division)uFolding Addition (折疊相加)uDigits Analysis (位數值分析)國立聯合大學 資訊管理學系 演算法課程 (陳士杰)26uDef: 將Key值取,依Hashing Table Bucket數目,選取作為Hash Address。ne.g., 假設有1000個Bucket,範圍編號為000999,若有一數值x = 8125,試利用Middle Square求其適
16、當之Hash AddressnSol: x = 8125 66015625 取中間三位 = Hash Address (取亦可)Middle Square (平方值取中間位數平方值取中間位數)國立聯合大學 資訊管理學系 演算法課程 (陳士杰)27uDef: H(x) = x mod mum的選擇之注意事項:nm不宜為 “2”求得的位址僅有0或1,collision的機會很大nm的選擇最好是質數 (除盡1和除盡自已)Mod (餘數,或餘數,或 Division)國立聯合大學 資訊管理學系 演算法課程 (陳士杰)28uDef: 將資料鍵值切成幾個相同大小的片段,然後將這些片段相加,其總和即為Has
17、hing Addressu相加方式有兩種:nShift (移位)nBoundary (邊界)u若有一資料x = 12320324111220,請利用兩種不同的Folding Addition方法求Hashing Address (假設片段長度為3)。Folding Addition (折疊相加折疊相加)國立聯合大學 資訊管理學系 演算法課程 (陳士杰)29uSol:nx=12320324111220 are partitioned into three decimal digits long.P1 = 123, P2 = 203, P3 = 241, P4 = 112, P5 = 20.nSh
18、ift folding:nFolding at the boundaries: 5169920112241203123)(iiPxh123 203 24111220123302211241h(x) = 123 + 302 + 241 + 211 + 20 = 897020國立聯合大學 資訊管理學系 演算法課程 (陳士杰)30Digits Analysis (位數值分析位數值分析)uDef: 當,則可以選定基底r,然後分析每個資料之。n若很,則該位; n若很,則該位,而挑選的位數值集合成Hashing Address。uEx:國立聯合大學 資訊管理學系 演算法課程 (陳士杰)314種常見的種常見
19、的Overflow處理方式處理方式uLinear Probing (線性探測)uQuadratic Probing (二次方探測)uRehashing (再雜湊)uLink List (鏈結串列,或稱Chain)國立聯合大學 資訊管理學系 演算法課程 (陳士杰)32Linear Probing (線性探測線性探測)uDef: 又稱Linear Open Addressing。當H(x)發生overflow,則循著H(x)+1, H(x)+2, , H(x)-1順序,逐步搜尋,直到:n遇見有空的Bucketn已搜尋完一圈為止 (表示Hash Table Full,無法store)u圖示:x國立聯
20、合大學 資訊管理學系 演算法課程 (陳士杰)33uHash Table有11個buckets (編號: 010),每個bucket只有一個slot,假設Hashing Function = ,並採取 “Linear Probing”處理overflow。試依照下列資料次序存入Hash Table,會得到什麼結果?5, 16, 33, 21, 22, 27, 38, 17uSol:u缺點: 易形成現象,增加Searching Time033122234556167278389171021 H(33) H(22) H(5) H(16) H(27) H(38) H(17) H(21)。原。原本應該屬
21、於位置本應該屬於位置 “6”的資料的資料17,被擠到很,被擠到很遠的地方,要翻山越遠的地方,要翻山越嶺才能找到它嶺才能找到它! Search Time增加增加!國立聯合大學 資訊管理學系 演算法課程 (陳士杰)34Quadratic Probing (二次方探測二次方探測)uDef: 為改善Clustering現象而提出。當H(x)發生overflow時,則探測 (H(x) i2) mod b,b為bucket數,1 i (b-1)/2u圖示: H(x)空位的探測次序空位的探測次序:國立聯合大學 資訊管理學系 演算法課程 (陳士杰)35u承接上題,並改採 “Quadratic Probing”
22、處理overflow。則Hash Table內容為何?5, 16, 33, 21, 22, 27, 38, 17uSol:033122234275561671789381021 H(33) H(22) H(5) H(16) H(27) H(38) H(17) H(21)國立聯合大學 資訊管理學系 演算法課程 (陳士杰)3603312224434275561671789381021u承接上題,44 ?uSol: H(44) = 0 (0+12) mod 11 = 1 (0-12) mod 11 = 10 (0+22) mod 11 = 4 (0-22) mod 11 = 7 (0+32) mod 11 = 9 (0-32) mod 11 = 負值需先加上負值需先加上,再取,再取mod!國立聯合大學 資訊管理學系 演算法課程 (陳士杰)37Rehashing (再雜湊再雜湊)uDef: 提供一系列的Hashing Functions: f1, f2, f3,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三年级数学下册口算试题大全
- 成都理工大学工程技术学院《同位素地球化学》2023-2024学年第二学期期末试卷
- 内蒙古丰州职业学院《中国工艺美术史》2023-2024学年第二学期期末试卷
- 江西应用技术职业学院《康复评定学B》2023-2024学年第二学期期末试卷
- 2025年改性丙烯酸树脂涂饰剂合作协议书
- 广东汕头幼儿师范高等专科学校《商务计量方法》2023-2024学年第二学期期末试卷
- 打造智能消费新模式的实施方案
- 跨境进口保健品的创新与研发趋势
- 青海民族大学《国际商务谈判》2023-2024学年第二学期期末试卷
- 绵阳职业技术学院《数字系统》2023-2024学年第二学期期末试卷
- 2025年山西地质集团社会招聘高频重点提升(共500题)附带答案详解
- 四川省绵阳市2025届高三第二次诊断性考试思想政治试题(含答案)
- 2024-2025学年辽宁省沈阳市沈河区七年级(上)期末英语试卷(含答案)
- 2024-2025学年初中七年级上学期数学期末综合卷(人教版)含答案
- 体育活动策划与组织课件
- 公司违规违纪连带处罚制度模版(2篇)
- 2025届高考物理二轮总复习第一编专题2能量与动量第1讲动能定理机械能守恒定律功能关系的应用课件
- T型引流管常见并发症的预防及处理
- 2024-2025学年人教新版九年级(上)化学寒假作业(九)
- 内业资料承包合同个人与公司的承包合同
- 2022年全国医学博士英语统一考试试题
评论
0/150
提交评论