二分查找有个坑

内容会持续更新,有错误的地方欢迎指正,谢谢!

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

答案:
4,2,4

理由:
假设低下标用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,找到所要找的元素
所以,查找77需要四次。

另外,查找34和99的过程相同

猜你喜欢

转载自blog.csdn.net/BillCYJ/article/details/79823521
今日推荐