直奔主题,先看代码。
class ShuzuDemo
{
/*
练习查找法
*/
public static void main(String[] args)
{
int[] arr ={1,5,7,11,14,17,19,20};//数组
int index = halfSearch_2(arr,2);//功能
System.out.println("index="+index);
}
public static int halfSearch(int[] arr,int key)
{
int max,min,mid;//定义三个变量
min = 0;
max = arr.length-1;
mid = (min+max)/2;
while (arr[mid]!=key)
{
if (key>arr[mid])
min=mid+1;
else if(key<arr[mid])
max=mid-1;
if (max<min)
return -1;
mid = (max+min)/2;
}
return mid;
}
public static int halfSearch_2(int[] arr,int key)
{
int max,min,mid;
min=0;
max=arr.length-1;
while (min<max)
{
mid=(min+max)>>1;
if(key>arr[mid])
min=mid+1;
else if(key<arr[mid])
max=mid-1;
else
return mid;
}
return -1;
return-min-1;
return min-1;
}
}
下边的三个return。
return -1;
return-min-1;
return min-1;
并不是代码错误。而是今天要询问的问题。
请原谅楼主的渣渣水平。
楼主自己打出的代码是:return min-1;
第五天视频里毕向东老师打出的代码是: return -1;
第五天学习文档里给出的代码是:return-min-1;
当然啦,三个输出的结果都是一样的。
我想问的是,return-min-1;
这段代码所表示的意思。和return min-1;有什么区别。
实际应用中应该用哪一种方法。
谢谢,麻烦大家了。 |
|