黑马程序员技术交流社区
标题:
大神们,怎么是死循环啊
[打印本页]
作者:
rel4x
时间:
2014-9-16 20:06
标题:
大神们,怎么是死循环啊
本帖最后由 rel4x 于 2014-9-16 20:08 编辑
class HalfsearchDemo
{
public static void main(String[] args)
{
int [] arr = new int [] {1,3,4,6,9,10};
halfsearch(arr,50);
}
public static void halfsearch(int[] arr, int key)
{
int max,min,mid;
max=arr.length-1;
min=0;
mid=(max+min)>>1;
while (arr[mid]!=key)
{
if (key>arr[mid])
min=mid+1;
else if (key<arr[mid])
max=mid-1;
if (max<min)
System.out.println("非法");
mid = (max+min)>>1;
}
System.out.println(mid);
}
}
作者:
fantacyleo
时间:
2014-9-16 20:11
本帖最后由 fantacyleo 于 2014-9-16 20:18 编辑
你的while循环没有退出机制。如果没找到就是无休止循环
作者:
fantacyleo
时间:
2014-9-16 20:31
当min > max时,要退出while循环;当找到key时,也要退出while循环。完整的程序视频里有,你可以先照着视频里的程序抄几遍,把思路消化一下再自己默写出来
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2