有序数组的二分查找

public class OrderedArray {
    //有序数组的二分查找;
    public int find(int arr[],int key){
        int lowerBound = 0;
        int upperBound = arr.length - 1;
        int curIn;
        while(true){
            curIn = (lowerBound + upperBound)/2;
            if(arr[curIn] == key){//找到了
                return curIn;
            }
            else if(lowerBound > upperBound){//没找到
                return arr.length;
            }
            else{
                if(arr[curIn] < key){
                    lowerBound = curIn + 1;
                }
                else{
                    upperBound = curIn - 1;
                }
            }
            
        }
    }
    public static void main(String[] args) {
        int[] t = {1,2,3,4,5,6,7,8,9,10};
        OrderedArray o = new OrderedArray();
        System.out.println(o.find(t,11));
    }
}
原文地址:https://www.cnblogs.com/yony/p/2874563.html