声明:因本人为非科班转码,个人水平有限,博客中难免有不准确之处,如有读者发现,本人恳请大家积极指出,本人也想知道自己的错误在哪里。欢迎大家一起指正,共同进步。
- 联系方式:3146367553@qq.com
想直接看结论的小可爱可以直接跳转至3-总结。
目录
1.折半查找思想的引入
在生活中,我们会碰到这么一个小游戏。你的女朋友(男朋友)向你炫耀她(他)双十一刚购入的一件新衣服,问你好不好看并且告诉你这件衣服不超过600元(正常情况买衣服商家不会倒扣),让你猜猜看他这件衣服花了多少钱。(假设实际购入价格为225元)
我们的思路必然是先询问是不是(0+600)/ 2 = 300元,然后等待npy的反应。如果此时npy给出的反应是价格高了,那么接下来你猜测的金额基本是(0+300)/ 2 = 150元。如果此时npy给出的反应是价格低了,那么接下来是你猜测的价格应该是(150+300)/ 2 = 225元,最终两大欢喜,猜对了价格。
值得注意的是,猜测价格的时候,我们认为大部分人都不会从1元到2元到3元一直枚举225元。即使真的有人想这么枚举猜测价格,我觉得其npy也不会同意,哈哈哈。
2.折半查找例子1
题目():在下列数组中查询数字6,并输出其下标。
数组:arr[10] = {0,1,2,3,4,5,6,7,8,9}
2.1 思路一:类似枚举法
思路1:从第一个元素开始查找,一直从0查找到9。如果在查找的过程中找到的话,就输出相关下标。如果一直查找查到9都没有查询到,则此时查找的相关下标变