zoukankan      html  css  js  c++  java
  • Binary Search

    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);
                
        }
  • 相关阅读:
    [转载][mysql]mysql字符集干货
    [mysql]修改表段默认值
    微信支付之h5方式(非微信内置浏览器中支付)
    阿里云 ECS 安全组
    Memcached cas 陷阱
    Memcached 分布式集群
    nginx 配置多个主机
    static类型的变量
    全局变量和局部变量
    nginx 负载均衡(默认算法)
  • 原文地址:https://www.cnblogs.com/joannacode/p/5926803.html
Copyright © 2011-2022 走看看