黑马程序员技术交流社区
标题:
急!关于数组的,各位帮忙看看。。。
[打印本页]
作者:
初艳春
时间:
2012-11-24 21:56
标题:
急!关于数组的,各位帮忙看看。。。
本帖最后由 初艳春 于 2012-11-25 10:29 编辑
class Test
{
public static void main(String[] args)
{
int[] a = {3,4,6,7,11,34,56};
int index1=halfSearch(a,3);
System.out.println("index1= "+index1);
}
public static int halfSearch(int[] a,int key)
{
int min,max,mid;
min=0;
max=a.length-1;
mid=(min+max)/2;
while(a[mid]!=key)
{
if(key>mid)
min=mid+1;
else if(key<mid)
max=mid-1;
if(min>max)
return -1;
mid=(max+min)/2;
}
return mid;
}
}
怎么没有运行结果啊?
作者:
李靖
时间:
2012-11-24 22:15
本帖最后由 李靖 于 2012-11-24 22:24 编辑
我建议先弄懂原理,然后再写,其实代码实现不难。关键是做好注释。这样容易排错。
if(key>a[mid])
min=mid+1;
else if(key<a[mid])
max=mid-1;
比较大小时,是和数组元素比较大小,而不是角标
作者:
初艳春
时间:
2012-11-25 10:28
谢谢各位指点,明白了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2