TinyScript / notes

0 stars 0 forks source link

二分查找 #1

Open TinyScript opened 2 years ago

TinyScript commented 2 years ago

二分查找关键逻辑:

双指针: 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

场景一链接 场景二链接