经典算法题:二分查找

二分查找

题目来源于京东校园招聘笔试真题

题目描述

有一个有序表为 {1,5,8,11,19,22,31,35,40,45,48,49,50} ,当二分查找值为 48 的结点时,查找成功需要比较的次数( )

  • A、4
  • B、3
  • C、2
  • D、1

题目分析

有序表的长度为 13,根据 二分查找法 查找数的特性,每次都 n/2 进行折半查找。

  • 13 / 2 = 6
  • 6 / 2 = 3
  • 3 / 2 = 1
  • 1 / 2 = 0
    最多需要 4 次就能得出结果。

这道题目需要查找的是 48 ,列表下标索引从零开始标记。

  1. 第一步,求出 [0,12] 中间节点。
    0 + (12 - 0) / 2 = 6
    a[6] = 31 < 48
    区间变为 [7,12]。
  2. 第二步,求出 [7,12] 中间节点。
    7 + (12 - 7) / 2 = 9
    a[9] = 45 < 48
    区间变为 [10,12]。
  3. 第三步,求出 [10,12] 中间节点。
    10 + (12 - 10) / 2 = 11
    a[11] = 49 > 48
    区间变为 [10,11]。
  4. 第四步,求出 [10,11] 中间节点。
    10 + (11 - 10) / 2 = 10
    a[10] = 48 = 48
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值