永发信息网

请问这个java程序,减半查找,在哪里出错了?想了好久都不知道

答案:3  悬赏:40  手机版
解决时间 2021-03-03 22:51
  • 提问者网友:欲望失宠
  • 2021-03-03 06:32
class HalfSearch1
{

public static void main(String[] args)
{
int[] a={3,6,9,11,13,15,20};

int i=HalfSearch(a,15);
System.out.println("查找结果");
System.out.println("index="+i);
}

public static int HalfSearch(int[] arr,int num)
{
int max,min,mid;
max=arr.length-1;
min=0;
mid=(max+min)<<1;
while(arr[mid]!=num)
{

if(num>arr[mid])
min=mid+1;
else if(num max=mid-1;
if(min>max)
return -1;
mid=(max+min)<<1;
}
return mid;
}

}
最佳答案
  • 五星知识达人网友:慢性怪人
  • 2021-03-03 07:31
mid=(max+min)<<1;

右移 相当于 * 2
mid=(max+min)>>1;
左移 相当于 /2

mid=(max+min)<<1;两处都改为mid=(max+min)>>1;
全部回答
  • 1楼网友:杯酒困英雄
  • 2021-03-03 10:26
mid = ( max + min ) >>> 1;
  • 2楼网友:话散在刀尖上
  • 2021-03-03 08:49
mid=(max+min)<<1; 这一句吧 再看看别人怎么说的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯