Binary Search 是一種使用在有序陣列的搜尋演算法。
當給定的資料陣列是有排序過的,就可以透過 Binary Search 來快速尋找某個值。
Binary Search 的精神是每次從排序資料的中間值與目標值的關係來縮小搜尋範圍。
因為每次搜索範圍會減少一半,所以當搜尋 k 次其所涵蓋的範圍是 2^k
假設 k 次可以找到結果,代表 2^k >= n = 資料陣列長度 可以推斷出 k => log2(n)
所以發現透過 Binary Search 可以讓時間複雜度在 O(log(n)) 找到目標資料
具體作法如下: