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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© cloud1991 中级黑马   /  2015-9-23 10:16  /  132 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. public class ArrayDemo
  2. {
  3.         public static void main (String args [])
  4.         {
  5.                 int [] arr = {1,4,6,7,9,12,30,55,70};//数字是有序排列
  6.                 int index = halfSearch(arr,30);
  7.                 System.out.println(index);
  8.         }
  9.         //折半查找
  10.         public static int halfSearch(int [] arr, int x)
  11.         {
  12.                 int min = 0;
  13.                 int max = arr.length-1;
  14.                 int mid = (min+max)/2;
  15.                 while (arr[mid]!=x)
  16.                 {
  17.                         mid = (max+min)/2;  //计算出mid的值,不然这个代码就没有意义。
  18.                         if (x<arr[mid])
  19.                                 max = mid-1;
  20.                         else if (x>arr[mid])
  21.                                 min = mid+1;
  22.                         if (max<min)
  23.                                 return -1;
  24.                 }
  25.                 return mid;
  26.         }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马