首页 > 试题广场 >

对于数列4、5、6、7、9、12、18、23,如果采用折半查

[单选题]
对于数列4、5、6、7、9、12、18、23,如果采用折半查找元素9,请问需要查找几次?()
  • 2
  • 3
  • 4
  • 5
注: n 代表数组长度
4、5、6、7、9、12、18、23
1)   Array[(0 + n - 1) / 2]  小于 9, (0 + n - 1) / 2 = 3
2)   Array[(3 + 1 + n - 1) / 2] 大于 9, (3 + 1 + n - 1) / 2 = 5
3)   Array[(3 + 1 + 5 - 1) / 2] 等于 9
所以, 一共3次
发表于 2021-09-05 18:00:14 回复(1)
初始4、5、6、7、9、12、18、23
1) mid=7,   7、9、12、18、23
2) mid=12,  7、9、12
3) mid=9,  结束
因此答案为3
发表于 2022-08-25 15:14:22 回复(0)
这是不是取决于二分查找的实现呀,使用相同元素取最右的元素的这种二分只需1次
发表于 2023-09-29 16:17:25 回复(0)
每次查找的位置:(start + end)/2,这里的start从0开始取值
每次查找的过程:先判断是否相等,若相等则结束;若不相等,则根据其大小决定向前或向后查找
发表于 2021-08-02 17:01:13 回复(0)
B
发表于 2021-06-03 21:14:54 回复(0)