如何二分查找

二分查找

例题.在有序表{7,14,18,21,23,29,31,35,38}中查找18.

【解析】

对于折半查找有序表里面其中的一个元素的话我们需要注意以下几点

>首先我们需要将表中的元素从小到大排序,由于题目中已经说了是有序表所以我们不需要将这些元素排序(切记这一步很重要)

>由于是折半查找顾名思义也就是将表中的元素拆分成一半缩小范围来查找,所以我们需要引入2个变量low和high以及mid,其中low标志每一次折半首元素,high标志位每一次折半的尾元素,mid表示为中间元素。

弄清楚了上面的2个概念的话接下来我们需要画图来演示怎么查找

【先将元素存入顺序表中】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tqFS6kD9-1629711149189)(二分查找.assets/aba5dcbfd87a2f475d1df9408f25a582.png)]

【第一次比较】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VnmJH0e2-1629711149191)(二分查找.assets/00b4ce7ae1d3848b3a85b21d324a4714.png)]

从题目中可以看出第一次查找mid=(9+!)/2=5,其值为23,因为23>18此时我们需要将high移到mid的左侧此时high=4

【第二次比较】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FVQR1sf4-1629711149191)(二分查找.assets/7dca53e02e62bc7d4c6f4cb6bed51e01.png)]

第二次查找的时候mid=(4+1)/2=2此时其值为14,由于14<18,所以需要将low移到mid的右边此时low=3

【第三次比较】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kbUZuNln-1629711149192)(二分查找.assets/ef3119940bf8397cf901a15e29945d03.png)]

第三次查找mid=(3+4)/2=3,此时其值为18,由于18=【18】,也就是我们需要查找的,故查找结束。

【注意】

在这里我需要补充下,首先是我们求mid,这里mid=(low+high)/2,这里的结果是取整

其次就是我们算出mid之后mid对应的值,如果mid对应的值大于我们需要查找的值,那么high将右移到mid的左边

如果mid对应的值小于我们需要查找的值,那么low将移到mid的右边

获取更多资料

请添加图片描述

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值