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

© 阴有风 中级黑马   /  2014-10-4 22:03  /  1280 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天又复习了一遍折半查找,还是似懂非懂,不是太清楚,求大神指教

4 个回复

倒序浏览
我是刚学到折半查找……也是似懂非懂啊……
回复 使用道具 举报
本帖最后由 朴日男 于 2014-10-5 12:52 编辑
  1. public class GetArrayIndex
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int[] arr = { 8, 19, 24, 34, 39, 51, 54, 56, 60, 84 };
  6.                 int index = getArrIndex(arr, 56);
  7.                 System.out.println("arr[" + index + "]=" + arr[index]);
  8.         }
  9.         /*
  10.          * 第一步: 折半 第二部: 判断是 左边 还是右边 第三部: 重复第一次 因此写 }
  11.          */
  12.         public static int getArrIndex(int[] arr, int key)
  13.         {
  14.                 int max = arr.length, min = 0, mid;
  15.                 while (min <= max)
  16.                 {
  17.                         mid = (max + min) / 2;
  18.                         if (key > arr[mid])
  19.                                 min = mid + 1;
  20.                         else if (key < arr[mid])
  21.                                 max = mid - 1;
  22.                         else if (key == arr[mid])
  23.                                 return mid;
  24.                 }
  25.                 return -1;
  26.         }
  27. }
复制代码


无标题444.jpg (102.55 KB, 下载次数: 37)

无标题444.jpg
回复 使用道具 举报
迷失的小Z 发表于 2014-10-5 11:29
我是刚学到折半查找……也是似懂非懂啊……

是把,我也不是很懂呢,咱们一起求助大神吧!
回复 使用道具 举报

哇,太详细了,瞬间泪奔了!偶像啊!非常感谢,一下子豁然开朗了。谢谢大神!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马