3TZ6[A8U%K(}LDMM@(Q`33K.png (3.71 KB, 下载次数: 3)
class test
{
public static void main(String[] args)
{
int[] arr={12,24,25,28,76,96,101};///一:此处可直接这样写。
int index=halfSearch(arr,120);///二:此处函数名调用错误。
/*
我想获取arr[index],也就是说获取key的值并打印
System.out.println(arr[index]+"的角标为:"+index);
但是当key的值没有和数组里的值匹配时,就获取不了arr[index]
这个怎么破?
*/
System.out.println("的角标为:"+index);
}
public static int halfSearch(int[] arr,int key)
{
int min,max,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(min>max)
{
return -1;
}
mid=(min+max)/2;
}
return mid;
}
}
Catface 发表于 2015-3-11 01:51
你的编译结果是这样的问题吗?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |