使用二分法查找数据

使用遍历法查找数据时,花费时间较长,代码效率不高,我们至多需要N(N为数组个数)次才能找到需要的数据;

如下:

而当使用二分法时,我们的效率便会提高许多;

那什么是二分法查找呢?

二分法查找是通过循环平分的方式,来进行查找想要的数或数据。

如果我们在数组中间查找数据,直接比较中间的数和所需要的数的大小,这样便可以查找一次就可筛选出很多不必要的数据;使用二分法我们至多便只需要次就可查找到所需内容(n为数组元素个数);

首先我们确定以下条件

  1. 数组个数的确定:sizeof(a)表示整个数组所占内存大小,再除每个单个的数组元素即得到数组个数;

  1. 得到数组个数后,右端的坐标自动就是数组个数减一,左端的坐标则是0;

  1. 若没有查到时,左右端点需要改变,以更加缩小范围。如:需查找的数k比中间数a[mid]大,则下次查找时,右端点不变,左端点变为mid值+1;所以此处就需要考虑到,当左右端点范围剩下两位时,看大小时若还是没有查找到需要的数时,下一个范围它的左右端点坐标变成相同,若此时还未确认位置,即最后一位也不是想要找到的那位数,此时便需要停止循环。

  1. 这也就是我们循环的条件——左端点始终小于右端点;

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值