一個沒有bug的二分查找算法

二分查找算法

    //二分查找要針對順序數組
    public static int search(int arr[],int value){

        int l = 0,r = arr.length;
        while(l<=r){
            //這樣求得的mid值就不會出現溢出的問題,若寫成int mid = (l + r) / 2;可能出現溢出
            int mid = l+(r-l)/2;
            if(arr[mid] == value)
                return mid;
            else if(value > arr[mid])
                l = mid + 1;
            else
                r = mid - 1;
        }
        //沒有找到返回-1
        return -1;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章