首页 > 其他 > 详细

Binary Search

时间:2016-10-02 06:57:23      阅读:167      评论:0      收藏:0      [点我收藏+]

Binary Search 模版

四种结构

    public static int BinarySearch(int[] array, int target){
        int left = 0;
        int right = array.length - 1;
        int mid = left + (right - left) / 2;
        while(left <= right){
            mid = left + (right - left) / 2;
            if(array[mid] > target){
                right = mid - 1;
            } 
            else
                left = mid + 1;
        }
        return right;
    } // rightyes + noleft
    
    
    public static int BinarySearchLeft(int[] array, int target){
        int left = 0;
        int right = array.length - 1;
        int mid = left + (right - left) / 2;
        while(left <= right){
            mid = left + (right - left) / 2;
            if(array[mid] < target){
                left = mid + 1;
            } 
            else
                right = mid - 1;
        }
        return left;
    } //leftyes rightNo
    
    //    recursive
    public static int RecursiveBinarySearchLeft(int[] array, int target, int left, int right){
        if(left > right){
            return left;
        }
        int mid = (left +  right) / 2;
        if(target > array[mid])
            return RecursiveBinarySearchLeft(array, target, mid + 1, right);
        else
            return  RecursiveBinarySearchLeft(array, target, left, mid - 1);
    }
    
    public static int RecursiveBinarySearchRight(int[] array, int target, int left, int right){
        if(left >= right){
            return right;
        }
        int mid = (left +  right) / 2;
        if(target < array[mid])
            return  RecursiveBinarySearchLeft(array, target, left, mid - 1);
        else
            return RecursiveBinarySearchLeft(array, target, mid + 1, right);
            
    }

 

Binary Search

原文:http://www.cnblogs.com/joannacode/p/5926803.html

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