黑马程序员技术交流社区

标题: 求高手解答 折半查找 代码死循环 查错 [打印本页]

作者: 施祖喜    时间: 2013-5-1 15:18
标题: 求高手解答 折半查找 代码死循环 查错
本帖最后由 施祖喜 于 2013-5-1 23:16 编辑
  1. class halfSearch{
  2.         public static void main(String[] args) {
  3.                 int[] ai = {1,2,3,4,5,6,7,8};
  4.                 int index =halfsearch(ai,3);
  5.                 System.out.println(index);
  6.         }
  7.         public static int halfsearch(int [] arr,int key){
  8.                 int max = arr.length - 1;
  9.                 int min = 0;
  10.                 int mad =(max + min)/2;
  11.                 while (arr[mad]!= key){
  12.                         if (arr[mad]>key){
  13.                          max=mad-1;
  14.                         }else if (arr[mad]<key){
  15.                                 min = mad +1;
  16.                         }        
  17.                         if (max<min){
  18.                                 return -1;
  19.                         }
  20.                         mad = (max +min)/2;
  21.                 }
  22.                 return mad;
  23.         }
  24. }
复制代码
找了好多遍硬是没找到错误出在那里.

QQ截图20130501155828.png (4.85 KB, 下载次数: 0)

这个是运行结果

这个是运行结果

作者: bianbian18    时间: 2013-5-1 15:44
这怎么会是一个死循环呢。。。
作者: 施祖喜    时间: 2013-5-1 15:45
bianbian18 发表于 2013-5-1 15:44
这怎么会是一个死循环呢。。。

你试试就知道,jvm总是在循环没有结果
作者: bianbian18    时间: 2013-5-1 15:51
施祖喜 发表于 2013-5-1 15:45
你试试就知道,jvm总是在循环没有结果

:o试了下,确实不是死循环呀。。。
作者: 施祖喜    时间: 2013-5-1 16:00
bianbian18 发表于 2013-5-1 15:51
试了下,确实不是死循环呀。。。

那就郁闷了 刚我又试了下  结果我截图在楼上了  就显示一个横杠在那里跳
作者: hyw840705183    时间: 2013-5-1 16:06
我试了下,没有死循环,结果如下:

1.JPG (5.47 KB, 下载次数: 0)

1.JPG

作者: 邹晓慧    时间: 2013-5-1 18:30
这段代码是正确的啊 =_= 你怎么会说是死循环呢····


作者: chouwayメ    时间: 2013-5-1 19:20
认真地看了遍 ,应该没错 。 我也在Eclipse 运行了下 结果OK :index  是2  没有错。

另: Lz你的{}大括号。。。差点没让人眼花掉。     对齐下{
                                                                                          }提高下阅读性,码代码自己也舒服啊!


(AW@GX)U8Z2HLVK{~[BHRN7.jpg (75.3 KB, 下载次数: 0)

Eclipse halfSearch

Eclipse halfSearch

作者: 施祖喜    时间: 2013-5-1 23:14
chouwayメ 发表于 2013-5-1 19:20
认真地看了遍 ,应该没错 。 我也在Eclipse 运行了下 结果OK :index  是2  没有错。

另: Lz你的{}大括号 ...

大括号是老师叫我们这么对其的哦;  他说Eclipse中都会是这么的.......
作者: 施祖喜    时间: 2013-5-1 23:15
谢谢各位了   问题原因我找到了    一个很低级的错误,不好意思说了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2