首页 > 试题广场 >

初始化数组 int [] arr...

[单选题]
初始化数组  int [] arr = {2,10,23,31,55,86},使用二分查询算法查找55,需要循环执行多少次才能命中目标?
  • 1
  • 2
  • 3
  • 4
数列 2【0】 10【1】 23【2】 31【3】 55【4】 86【5】
指针 low




high
第一趟

mid



指针



low

high
第二趟



mid
下表(0+5)/2=2.5向下取整=2

发表于 2019-09-18 10:29:38 回复(3)
在数组中元素为奇数个时,mid计算值按向下取整或向上取整可根据具体情况进行设计,本题中默认采用向下取整
发表于 2020-05-08 15:19:28 回复(0)
<p>数组为:2,10,23,31,55,86。索引为0—5。</p><p>第一次(0+5)/2=2(遵从C语言的除法,向下取整)对应的值是23,小于55,所以下一次的搜索空间是3—5</p><p>第二次(3+5)/2=4,对应的值是55,找到了,所以总共找了2次</p><p><br></p>
发表于 2020-09-18 10:53:25 回复(0)
<p>mid之后。low会-1。或者 high+1</p><p><br></p>
发表于 2020-06-29 18:25:26 回复(0)
mid之后low会+1!!!high会-1
发表于 2020-06-09 23:48:13 回复(0)
向下取整哦
发表于 2020-03-07 15:31:38 回复(0)