二分查找的用法(找值,没有则插入到指定位置)

146 阅读1分钟

二分查找:

非常关键的算法,可变性非常强,建议好好学学,以下为一个笔试题

题目:查找有序数组中元素的位置,如果有则返回,如果没有则返回插入的位置

public static int binarySearch(int[] arr,int target){

    int l=0;
    int r=arr.length-1;
    while(l<=r){

        int mid=l+(r-l)/2;
        if(target>arr[mid]){

            l=mid+1;
        }else if(target<arr[mid]){

            r=mid-1;
        }else if(target==arr[mid]){

            return mid;
        }
    }

    return r+1;
}