首页 > 其他 > 详细

StringBuffer-二分查找

时间:2015-12-23 01:58:19      阅读:107      评论:0      收藏:0      [点我收藏+]
package cn.StringBuffer;

/*二分查找
 *     前提:数组必须是有序的
 *     思想:每次猜中间的那个元素,比较大或者小,就能减少一半的元素
 * 
 * 思路:
 *         定义最小的索引,最大索引
 *         计算出中间的索引
 *         拿中间的索引的值和要查找的元素进行比较
 *             相等:就直接返回当前的中间索引
 *             不相等:
 *                 大了: 在左边找  max = mid - 1;
 *                 小了:在右边找   min = mid + 1;
 *         重新获取最小索引或者最大索引
 *                 大了  在左边找   
 *                 小了  在右边找  
 * 
 *         回到第二步 
 * 
 * */
public class ErFenSearch {
    public static void main(String[] args) {
        int[] arr = { 22, 33, 55, 66, 77, 88, 99, 111 };
        int index = getIndex(arr, 99);
        System.out.println("索引是:" + index);
    }

    public static int getIndex(int[] arr, int value) {
        int max = arr.length - 1;
        int min = 0;
        int mid = (max + min) / 2;
        while (arr[mid] != value) {
            if (arr[mid] > value) {
                max = mid - 1;
            } else {
                min = mid + 1;
            }
            if (min > max) {
                return -1;
            }
            mid = (max + min) / 2;
        }
        return mid;

    }

}

 

StringBuffer-二分查找

原文:http://www.cnblogs.com/Deleting/p/5068698.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!