折半搜尋是什麼意思

折半搜尋(Binary Search)是一種在有序的數列中尋找特定元素的搜尋算法。它的基本思想是:將要查找的數列從中間分成前後兩半,然後檢查目標元素與中間元素的大小關係,根據比較結果推斷出目標元素所在的範圍,並且縮小搜尋範圍,直到找到目標元素或者確定目標元素不在數列中為止。

具體步驟如下:

  1. 首先確定數列是有序的(通常是已經排好序的)。
  2. 設定一個中間值,這通常是將數列中間的元素作為中間值。
  3. 將目標元素與中間值進行比較。
  4. 如果目標元素小於中間值,則在數列的前半部分繼續執行折半搜尋。
  5. 如果目標元素大於中間值,則在數列的後半部分繼續執行折半搜尋。
  6. 如果目標元素等於中間值,則表示找到目標元素。
  7. 如果數列的前半部分和後半部分都為空,則表示目標元素不在數列中。

折半搜尋算法的時間複雜度為O(log n),其中n是數列的大小。這意味著當數列變得越長時,折半搜尋算法的效率越高。折半搜尋算法需要一個有序的數列,並且只能用於查找,不能用於數列的插入或刪除操作。