TinyScript/notes

二分查找

Opened this issue · 0 comments

二分查找关键逻辑:

双指针:
let start = 0, end = arr.length
取中数:
const mid = Math.floor((end - start) / 2 + start)
根据中数循环调整窗口大小:

// 场景一:已知target
if(arr[mid] === target) return mid
if(arr[mid]) < target) start =  mid + 1
if(arr[mid]) > target) end =  mid - 1

// 场景二:未知target,getValue返回true代表mid在右边,false代表在左边
if(getValue(mid)) end = mid
else start= mid + 1

场景一链接
场景二链接