码迷,mamicode.com
首页 > 其他好文 > 详细

二分查找

时间:2017-02-16 00:04:39      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:int   改变   可能性   最大   查找   highlight   else   min   public   

 public static void main(String[] args) {

      int[] arr = { 11, 22, 33, 44, 55, 66, 77 }; // 必须有序

      System.out.println(getIndex(arr, 22));

   }

   public static int getIndex(int[] arr, int value) {

      int min = 0;

      int max = arr.length - 1;

      int mid = (min + max) / 2;

      while (arr[mid] != value) { // 当中间值不等于要找的值,就开始循环查找

         if (arr[mid] < value) { // 当中间值小于了要找的值

            min = mid + 1; // 最小的索引改变

         } else if (arr[mid] > value) { // 当中间值大于了要找的值

            max = mid - 1; // 最大的索引改变

         }

         mid = (min + max) / 2;// 无论最大还是最小改变,中间索引都会随之改变

         if (min > max) {// 如果最小索引大于了最大索引,就没有查找的可能性了

            return -1; // 返回-1

         }

      }

      return mid;

   }

 

二分查找

标签:int   改变   可能性   最大   查找   highlight   else   min   public   

原文地址:http://www.cnblogs.com/loaderman/p/6403688.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!