- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
主题Binarysearch(二分搜寻).ppt
主題: Binary search (二分搜尋) 解題技巧 Search Linear Search Binary Search 例題講解: H.91.3 歷年題目 什麼是 search? 在一堆資料中,找出需要的東西 例: 在名單中找看看有沒人叫“王小明” 在一堆數字中,最接近50的數字是多少 Search 方法 Linear search 最簡單、直覺的方法,把所有的東西都看過一次,找出需要的東西 在資料沒有被特殊處理過的情況下,這也是唯一的 search 方法 Binary search 什麼情況下能用 binary search 呢? 在資料是 sorted 的順序 1~100 之中猜數字 要是資料並不是 sorted 順序 自己把資料 sort 一次 Binary search 原理 因為資料是已經排好順序的,所以每次查詢時,從中間的地方去查一次,就可以判斷哪一半的人是不符合要求的,一次可以排除一半的候選人 Binary search Upper bound 目前還有機會被選到的上限 Lower bound 目前還有機會被選到的下限 Test_function() 給一個值去做測試,能 return 說比這個值大的還是小的那邊是還有機會的 Example 猜數字,範圍 1~ 16 (假設答案為 10) 上限 16,下限 1,猜 8 時,Test_function 會回答太小== 下限改為 9 上限 16,下限 9,猜 12 時,Test_function 會回答太大 Binary search 的速度 在一個總個數為 n,sorted 的資料中做 binary search 總共要 log2 n 次的 test 長度 16 16/2 = 8; 8/2 = 4; 4/2 = 2; 2/2 = 1; log2 16 = 4; Binary search V.S. Linear search 要是給的資料不是一個 sorted 的狀態,要不要先 sort 再做 binary search? 如果只需要在資料中做少量的 search,就不要 sort,直接做 linear search 就好 如果需要很多次的 search,先 sort 會有利 應用: 找數字 給一堆數字,問某個數字在不在這堆數字之中 如果只會問很少次 每次做 linear search 如果會問很多次 先把數字 sort 一次,每次問的時後做 binary search Problem: A. 10125 給一堆整數,請找最大的一個數字 d 使得 a + b + c = d,其中 a b c d 是這堆數字中的某四個不同的數字 每個數字的範圍在 -536870912 ~ 536870911 總共最多有 1000 個數字 解法 a + b + c 總共會有 1000*1000*1000種可能 將等式換成 a + b = d – c a + b 和 d – c 各只有1000*1000 種可能 把所有可能的 a + b 都算出來, sort 一次,之後把所有可能的 d – c 去之前 a + b 所產生的 list 中做 binary search Sample Input 2, 3, 5, 7, 12 任兩個數字和的所有可能 5, 7, 9, 14, 8, 10, 15, 12, 17, 19 sort 之後: 5, 7, 8, 9, 10, 12, 14, 15, 17, 19 任兩個數字差的所有可能 12 – 2, 12 – 3, 12 – 5, …, 3 – 2 每個數字去做 binary search 應用: 方程式求根 (A. 10341) 解下面的方程式 (給定 p, q, r, s, t, u,求 x) p*e-x + q*sin(x) + r*cos(x) + s*tan(x) + t*x2 + u = 0, where 0 = x = 1, 0 = p, r = 20 and -20 = q, s, t = 0 輸出到小數點以下第四位 在 0 = x = 1中, p*e-x, cos(x) 為遞減的方程式 q*sin(x), s*tan(x), t*x2 為遞增的方程式 加上 0 = p, r = 20 and -20 = q, s, t = 0 的條件後,整個式子為一個遞減的方程式 解法 任意帶兩點 x1, x2 進遞增(減)方程式中,若 f(x1)*f(x2) 0,則在 x1 到 x2 之中一定有一個點 x3 使得f(x3) = 0 設 upper = 1,lower = 0,mid = (upper + lower)/2, 若f(mid) 的值很小或等於 0 的話,mid 就是方程式的根,否則則看
您可能关注的文档
最近下载
- 县城排水防涝提升改道工程监理细则.docx VIP
- 新版DFMEA&PFMEA表格模板.xlsx VIP
- 人教版高中物理必修第三册精品课件 第9章 静电场及其应用 专题提升二非点电荷电场强度的求解、电场线和轨迹问题.ppt VIP
- 创伤性休克的治疗 治疗创伤性休克的偏方 如何治疗创伤性休克.doc VIP
- 全国职业大赛(中职)ZZ032建筑信息模型建模赛题第9套.docx VIP
- 医共体综合服务能力提升建设项目可行性研究报告.docx
- GB_T 1348—2019《球墨铸铁件》标准解读.pdf VIP
- 三溴化硼BBr3.doc VIP
- 西安地铁丰庆路基坑围护结构施工方案设计.doc
- 高一【美术(人美版)】抒情与写意——文人画-课件.pptx VIP
文档评论(0)