演算法系列#11 Binary Search
當題目給你一個 sorted 的 array,linked-list 或是 matrix,並要求你從中找到特定的元素,那麼 binary search 是一個很好用的方法
- 第一我們會先設定 start 跟 end 兩個點,並從這兩點中間找到 middle = (start + end) / 2
- 檢查這個 middle 是否符合題目所需,如果是的話就直接回傳 middle
- 檢查如果題目所需的數字小於 middle,那麼就將 end 設定成 middle - 1,並從第一步開始
- 如果題目所需的數字大於 middle,將 start 設成 middle + 1,並從第一步開始
以下為一個簡單的範例
1 | let start = 0, end = elements.length - 1 |
題目
- Order-agnostic Binary Search (easy)
- Search in a Sorted Infinite Array (medium)