二分搜尋法,也稱為折半搜尋或對數搜尋,是一種在有序數組中查找特定元素的搜尋算法。該算法通過每次將搜尋區間減半來快速縮小搜尋範圍。具體步驟如下:
初始化。設定兩個指針,low指向數組的起始位置,high指向數組的最後一個位置。
查找中間元素。計算中間位置mid=(low+high)/2。
比較中間元素。如果中間元素等於目標值,則搜尋成功,返回中間位置的索引;如果中間元素小於目標值,則將low設定為mid+1,表示目標值在中間位置的右側;如果中間元素大於目標值,則將high設定為mid-1,表示目標值在中間位置的左側。
重複步驟2和3,直到low大於high,表示搜尋區間為空,目標值不存在於數組中。
二分搜尋算法的優點包括高效的時間複雜度O(log n),較少的比較次數,以及低空間複雜度O(1),適用於靜態或有序數組。然而,它的缺點是要求數據必須是有序的。