二分查找算法,也稱為折半查找算法,是一種在有序數組中查找特定元素的搜尋算法。其工作原理如下:
初始設定。給定一個已排序的數組和一個目標值,設定兩個指針,通常稱為low和high,分別指向數組的起始位置和末尾。
查找過程。計算中間元素mid。如果mid位置上的元素等於目標值,則搜尋成功,返回mid的位置;如果mid位置上的元素小於目標值,則目標值在mid的右側,因此將low設定為mid+1,在新範圍內繼續搜尋;如果mid位置上的元素大於目標值,則目標值在mid的左側,因此將high設定為mid-1,在新範圍內繼續搜尋。
結束條件。重複上述步驟,直到low大於high,這表明目標值不在數組中,此時應返回一個錯誤指示或宣告未找到。
二分查找的時間複雜度為O(logN),其中N是數組中的元素個數。這是因為每次比較都會將搜尋區間減少大約一半,這是一個對數級別的操作。空間複雜度為O(1),意味著該算法不需要額外的存儲空間,是一種原地工作的高效算法。