首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >五分钟学算法之经典算法题:二分查找

五分钟学算法之经典算法题:二分查找

作者头像
五分钟学算法
发布2019-10-25 02:51:05
1.2K0
发布2019-10-25 02:51:05
举报
文章被收录于专栏:五分钟学算法五分钟学算法

作者 | 程序员小吴

今天分享一道简单的笔试题,题目来源于京东校园招聘笔试真题。你做出这道简单的题目需要花费多少分钟呢?

题目描述

有一个有序表为 {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 ,列表下标索引从零开始标记。

第一次,求出 [0,12] 中间节点。

0 + (12 - 0) / 2 = 6 

a[6] = 31 < 48

区间变为 [7,12]。

第二次,求出 [7,12] 中间节点。

7 + (12 - 7) / 2 = 9 

a[9] = 45 < 48

区间变为 [10,12]。

第三次,求出 [10,12] 中间节点。

10 + (12 - 10) / 2 = 11 

a[11] = 49 > 48

区间变为 [10,11]。

第四次,求出 [10,11] 中间节点。

10 + (11 - 10) / 2 = 10

a[10] = 48 = 48

找到啦!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 五分钟学算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
  • 题目分析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档