首页 > 试题广场 >

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

[单选题]
初始化数组  int [] arr = {2,10,23,31,55,86},使用二分查询算法查找55,需要循环执行多少次才能命中目标?
  • 1
  • 2
  • 3
  • 4
关键数55 首次和arr[(0+5)/2]=23比较,55>arr[(0+5)/2],因此,55继续和arr[((2+1)+5)/2]=55比较,55=arr[((2+1)+5)/2],循环停止。其中,5=arr.length-1
发表于 2019-09-03 14:32:06 回复(0)
二分查找,查找数组取中间得那个数;6/2=3;第一次查找到第3个数,23;
55比23大,第2次在31,55,86中取中间55,正是;所以查找了2次。
发表于 2019-08-24 17:48:45 回复(0)
二分查找算法,前提是一个有顺序的数组源,定义一个头和尾,取出中间的那个值,与目标值进行比较,目标值等于中间值,直接输出,目标值大于中间值,证明目标值在右边,就把头改变成这个中间值,这样就达到缩小查找范围,小于的话,就把中间值设置成尾。
发表于 2019-08-24 14:35:48 回复(0)