左右邊界二分查找

1.查找小於等於

int BinarySearch(int value, int left, int right){
	right +=1;
    while(left < right){
        cout<< left << " " << right <<endl;
        int mid = (left + right) >> 1;
        if (value == numbers[mid]){
            return mid;
        }else if (numbers[mid] < value){
            left = mid + 1;
        }else if (value < numbers[mid]){
            right = mid;
        }
    }
    return left - 1;
}

1.查找大於等於

int BinarySearch(int value, int left, int right){
	right +=1;
    while(left < right){
        cout<< left << " " << right <<endl;
        int mid = (left + right) >> 1;
        if (value == numbers[mid]){
            return mid;
        }else if (numbers[mid] < value){
            left = mid + 1;
        }else if (value < numbers[mid]){
            right = mid;
        }
    }
    return left;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章