C++二分法查找(升序数组查找目标值下表)

c++二分法查找数组中目标值位置
摘要由CSDN通过智能技术生成

使用二分法的前提是数组必须为有序数组,且该数组中不存在重复的元素。(若存在重复元素,使用二分法查找返回的元素下标就可能不是唯一的)

解题逻辑:

对于一组升序数组,给出目标值target,在数组中找到目标值对应的下标值。从序列中中间位置开始比较,如果当前位置值array[mid]等于target,则查找成功,下标值为mid;如果当前位置值array[mid]大于target,则在序列的前半段查找;如果array[mid]小于target,则在序列的后半段中查找。以上需要用到循环。

题:在n个有序数组中查找特定数值并输出其下标。

(数组必须为升序)

当array[middle] == target时target下标为middle,查找成功,则不需要进行循环;

当left>right时,说明循环过程中已经找不到存在于数组中的目标值,应跳出循环。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值