- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构(c语b言版)黄国瑜 叶乃菁 课件 ch09
黃國瑜、葉乃菁著 資料結構 資料結構 第九章 搜尋 本章綱要 9-1 何謂搜尋 9-2 線性搜尋 9-3 二元搜尋 9-4 費氏搜尋 9-5 插補搜尋 本章綱要 9-6 雜湊搜尋 9-6-1 雜湊函數 9-6-2 雜湊碰撞解決法 9-6-3 雜湊搜尋 9-7 二元搜尋樹 9-1 何謂搜尋 搜尋 在於從一些資料中尋找出一個特定的值 常見搜尋法 線性搜尋 二元搜尋 費氏搜尋 插補搜尋 雜湊搜尋 二元搜尋樹 9-2 線性搜尋 線性搜尋法 又稱為循序式搜尋 從資料中的第一筆資料開始搜尋比對 如果找到則傳回該值或該位置 如果沒有找到則往下一筆資料搜尋比對 直到搜尋到最後一筆資料為止。 9-2 線性搜尋 找出57,則: Step 1 欲尋找值57,與陣列中第一筆資料比對。 57≠13,尋找下一筆。 Step 2 欲尋找值57,與陣列中第二筆資料比對。 57≠25,尋找下一筆。 9-2 線性搜尋 Step 3 欲尋找值57,與陣列中第三筆資料比對。 57≠16,尋找下一筆。 Step 4 欲尋找值57,與陣列中第四筆資料比對。 57≠23,尋找下一筆。 Step 5 欲尋找值57,與陣列中第五筆資料比對。 57=57。找到該資料。 9-2 線性搜尋 找出27,則: Step 1 欲尋找值27,與陣列中第一筆資料比對。 27≠13,尋找下一筆。 Step 2 欲尋找值27,與陣列中第二筆資料比對。 27≠25,尋找下一筆。 9-2 線性搜尋 Step 3 欲尋找值27,與陣列中第三筆資料比對。 27≠16,尋找下一筆。 Step 4 欲尋找值27,與陣列中第四筆資料比對。 27≠23,尋找下一筆。 Step 5 欲尋找值27,與陣列中第五筆資料比對。 27≠57。已到最後一筆,仍未找到資料,所以傳回未找到資料。 9-3 二元搜尋 二元搜尋法 Middle = ( Left + Right ) / 2; if ( Key Data[Middle] ) 搜尋前半段 else if ( Key Data[Middle] ) 搜尋後半段 else 搜尋到資料 9-3 二元搜尋 找出25,則: Step 1 25 Data[5] = 37 左邊界(left)= 0、右邊界(right)= 5 – 1 = 4 中位數(middle)= ( 0 + 4 ) / 2 = 2。 Step 2 25 Data[2] = 12 左邊界(left)= 2 + 1 = 3、右邊界(right)= 4 Step 3 中位數(middle)= ( 3 + 4 ) / 2 = 3。 25 = Data[3] = 25 表示找到資料。 9-3 二元搜尋 找出50,則: Step 1 50 Data[5] = 37 左邊界(left)= 5 + 1 = 6、右邊界(right)= 11 中位數(middle)= ( 6 + 11 ) / 2 = 8。 Step 2 50 Data[8] = 58 左邊界(left)= 6、右邊界(right)= 8 – 1 = 7 中位數(middle)= ( 6 + 7 ) / 2 = 6。 9-3 二元搜尋 Step 3 50 Data[6] = 47 左邊界(left)= 6、右邊界(right)= 7 – 1 = 6 中位數(middle)= ( 6 + 6 ) / 2 = 6。 Step 4 50 Data[6] = 47 左邊界(left)= 6等於右邊界(right) = 6。 未能搜尋到資料。 9-4 費氏搜尋 費氏搜尋 F(a) = n +1、搜尋F(a-1)筆資料 若欲搜尋值F(a-1)筆資料的值 資料在F(a-1)筆資料之前 若欲搜尋值F(a-1)筆資料的值 資料在F(a-1)筆資料之後 若欲搜尋值=F(a-1)筆資料的值 即找到該資料 9-4 費氏搜尋 找出7,則: 12筆,F(a) = n + 1 = 12 + 1 = 13,a = 6 樹根Root = F(a-1) = F(6-1) = F(5) = 8 Distance_1 = F(a-2) = F(6-2) = F(4) = 5 Distance_2 = F(a-3) = F(6-3) = F(3) = 3 9-4 費氏搜尋 Step 1 7 Data[8-1] = Data[7] = 46,表示資料在第八筆資料之前。 Root = Root – Distance_2 = 8 – 3 = 5 Temp = Distance_1 = 5 Distance_1 = Distance_2 = 3 Distance_2 = Temp – Distance_2 = 5 – 3 = 2 Ste
文档评论(0)