二分查找法

一、使用前提

数据已经按照升序排列!

二、基本原理

将要查找的元素(key)与数组的中间元素比较

  •     如果key小于中间元素,只需要在数组的前一半元素中继续查找
  •     如果key和中间元素相等,匹配成功,查找结束
  •     如果key大于中间元素,只需要在数组的后一半元素中继续查找key

三、实践(low+high)/2

 low:最小值
 mid:中位数
 high:最大值
 数据如下图所示:


 查找的元素:key = 5;
 key=5 与中位数 数组下标为[6]的元素比较,5<35,接下来在数组的前一半元素中继续查找,high的下标为上次mid的前一位,mid值为数组下标[2],如下图所示:

 key=5 与中位数 数组下标为[2]的元素比较,5<8,high的下标为上次mid的前一位,mid值为数组下标[0],如下图所示:


 key=5 与中位数 数组下标为[0]的元素比较,5>2,low后移一位,low、mid、high都指向下标[1]

找到要查找的数据。 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值