A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yekong262 中级黑马   /  2014-1-21 22:19  /  1351 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yekong262 于 2014-1-22 09:54 编辑
  1. public static int halfSearch_2(int[] arr,int key)
  2.         {
  3.                 int min=0,max=arr.length,mid=(max+min)/2;
  4.                 while (min<=max)
  5.                 {
  6.                         mid=(max+min)/2;        
  7.                         if (key>arr[mid])
  8.                                 min=mid+1;
  9.                         else if (key <arr[mid])
  10.                                 max=mid-1;
  11.                         else if(key==arr[mid])
  12.                                 return mid;
  13.                         
  14.                 }
  15.                 return -1;
  16.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
我运行这没错啊。。。能不能说得详细点是什么错
回复 使用道具 举报
二分法查找的一个重要前提是这个数组已经排好序,你这个看着没什么,返回key的下标!
回复 使用道具 举报
max=arr.length改成max=arr.length-1试试,应该对的
回复 使用道具 举报
同意二楼说的,想要用二分法前提是已经排好序了,返回的是想要查找的key的下标,数据下标是从0开始的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马