當我在練習 LeetCode 第 704 題(二分查找法)時,深刻體會到這種演算法的高效率與實用性。二分查找(Binary Search)透過每次將搜尋範圍折半,能大幅減少比較次數,特別適用於已排序的陣列。在實作的過程中,我一開始採用了教學中最常見的寫法:while (left <= right)。這種寫法確實簡單直觀,也能正確找出目標值。不過後來我開始思考是否能夠進一步優化這個迴圈條件,於是我改用了 while (left < right) 的寫法。
使用 while (left < right) 代表當左右指標相遇時,就不再進行迴圈,因此在某些情況下,的確可以少一次迴圈的執行次數,理論上有機會稍微減少運算時間。不過這種改寫方式也有其風險,例如可能會錯過邊界的判斷,或在實作細節上出現邏輯錯誤。要使用這種方式,需要特別注意迴圈內 mid 的計算與指標移動的條件設定,否則容易導致無窮迴圈或錯誤結果。