二分查詢的模板
阿新 • • 發佈:2018-11-04
while (low <= high) { int middle = (low + high) / 2; if (target == nums[middle]) { return nums[middle]; } else if (target > nums[middle]) { low = middle + 1; } else if (target < nums[middle]) { high = middle - 1; } }
- high的初始化(如果是vector):high=v.size()-1 就是說必須在vector的角標範圍內
- 迴圈條件:low<=high
- 對low和high的修改:low=middle+1 high=middle-1
二分查詢思路比較簡單,但是有以上三個細節需要注意,不然極易出錯。