在序列(22,34,55,77,89,93,99,102,120,140)中,采用二分查找,分别查找77,34,99,所需的查找次数分别为()----腾讯2016研发工程师笔试题(一)

来源:互联网 发布:开农村淘宝店怎么申请 编辑:程序博客网 时间:2024/06/05 22:59

在序列(22,34,55,77,89,93,99,102,120,140)中,采用二分查找,分别查找77,34,99,所需的查找次数分别为()

正确答案: D   

3,3,3
3,3,4
3,4,3
4,2,4
  • 添加笔记
  • 求解答(19)
  • 收藏
  • 纠错



22 34 55 77 89 93 99 102 120 140
0   1    2   3  4    5   6     7    8     9
假设低下标用low表示,高下标用high表示。
查找77:
开始low = 0, high = 9
第一次查找,找到中心的下标为(0+9)/2 = 4,即89,由于89大于77,所以,调整low = 0,high = 3(注意:由于知道下标为4的元素比77大,所以不会让high等于4
第二次查找,找到中心的下标为(0+3)/2 = 1,即34,由于34小于77,所以,调整low = 2,high = 3
第三次查找,找到中心的下标为(2+3)/2 = 2,即55,由于55小于77,所以,调整low = 3,high = 3
第四次查找,找到中心的下标为(3+3)/2 = 3,即77,找到所要找的元素

查找34和99的过程类似。。。

0 0
原创粉丝点击