二元搜尋是什麼意思

二元搜尋(Binary search)是一種在有序的數列中查找特定元素的搜尋算法。與線性搜尋不同,二元搜尋算法利用了數列已經有序的特性,可以在數列中間部分進行排除,從而加快搜尋速度。

二元搜尋的基本思路是:將要查找的數列分成前後兩半,通過比較目標值和數列的中間元素的大小,來決定在後續的搜尋中應該檢查數列的前半部分還是後半部分。如果目標值小於中間元素,則搜尋前半部分;如果目標值大於中間元素,則搜尋後半部分。這樣不斷地將搜尋範圍縮小一半,直到找到目標值或搜尋範圍為止。

二元搜尋算法的時間複雜度為O(log n),其中n是數列的大小。這意味著對於一個包含1000個元素的數列,二元搜尋算法最多只需要比較約10次就能找到目標值,而線性搜尋則需要比較1000次。當然,二元搜尋算法的前提是數列已經有序,這通常需要先進行排序。

在實際應用中,二元搜尋算法不僅可以用於數列的搜尋,還可以用於搜尋樹(如二叉搜尋樹)的搜尋,以及數據結構的插入和刪除操作。