码迷,mamicode.com
首页 > 编程语言 > 详细

java之二分法详解

时间:2017-02-05 15:44:02      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:二分法   java   

  1. 废话不多说,先来程序.一步一步看注释,

  2. 首先要注意:使用二分法时,数组必须是有序的,也就是从大到小或者从小到大的,不能是无序的

  3. public static int halfSearch(int[] arr,int key){
                int min,max,mid;//分别为最小值,最大值,和中间值
                min = 0;
                max = arr.length - 1;
                mid = (max + min)/2;//这应该就是二分的核心了,
                //当key = arr[mid]说明已经找到了这个数据,所以while循环的条件是!=
                while(arr[mid] != key){
                    if(key > arr[mid]){
                        min = mid + 1;
                    }else if(key < arr[mid]){
                        max = mid - 1;
                    }
                    if(max < min){
                        return -1;
                    }
                    mid = (max + min)/2;
                }
                //返回值为对应key值得下标
                return mid;
            }


本文出自 “12248949” 博客,请务必保留此出处http://12258949.blog.51cto.com/12248949/1895033

java之二分法详解

标签:二分法   java   

原文地址:http://12258949.blog.51cto.com/12248949/1895033

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