理念
- 时间复杂度是O(logn)
- 依赖顺序表结构
-
解题
定义 low 和 high
- 找到循环退出条件
- 找到 return 结果值条件
- 找到 low 和 high 指针变化逻辑
```javascript
var search = function(nums, target) {
let low = 0;
let high = nums.length - 1;
while(low <= high) {
} return -1; };const mid = low + Math.floor((high - low) / 2);
if (nums[mid] === target) {
return mid;
} else if (nums[mid] > target) {
high = mid - 1;
} else {
low = mid + 1;
}
var search = function(nums, target) { const binarySearch = (low, high) => { const mid = low + Math.floor((high - low) / 2); if (low > high) return -1; if (nums[mid] === target) { console.log(mid); return mid; } else if (nums[mid] > target) { return binarySearch(low, mid - 1); } else { return binarySearch(mid + 1, high); } } return binarySearch(0, nums.length - 1); }; ```