Binary Search
二分查找演算法
介紹
連結:Binary Search - GeeksforGeeks
Binary Search 是一種高效的搜尋演算法,特別適用於已排序的數列。它每次將搜尋範圍縮小一半,以此快速找到目標元素或確定目標元素不存在。這種演算法常用於需要高效查找的應用場景,如數據庫查詢和搜索引擎。
演算法概述
Binary Search 的核心思想是通過將已排序數列的搜尋範圍逐步縮小,直到找到目標元素。其主要步驟包括設置初始搜尋範圍、計算中點、比較目標值與中點值、調整搜尋範圍以及最終確定目標元素的位置或返回未找到的訊息。
實作步驟
1. 設定初始範圍
此步驟的目的是定義搜尋範圍的起始點與終止點。
詳細步驟:
- 初始化
left為 0,表示數列的起始索引。 - 初始化
right為數列的最後一個索引,即temp.size() - 1。 - 這些邊界確定了初始搜尋範圍。
2. 計算中點並比較
此步驟的目的是計算當前搜尋範圍的中點,並比較該中點值與目標值。
詳細步驟:
- 使用
mid = left + (right - left) / 2計算中點,避免溢位。 - 比較中點值
temp[mid]與目標值target:- 如果相等,則返回中點索引,結束搜尋。
- 如果中點值大於目標值,將右邊界
right調整為mid - 1。 - 如果中點值小於目標值,將左邊界
left調整為mid + 1。
3. 終止條件與返回結果
此步驟的目的是確保搜尋範圍正確縮小並返回正確結果。
詳細步驟:
- 當
left超過right時,表示目標值不在數列中,返回-1。 - 返回的結果
result將表示目標值的索引或未找到訊息。
1 |
|
- 標題: Binary Search
- 作者: Chenge XI
- 撰寫于 : 2024-08-21 01:02:25
- 更新于 : 2024-09-06 15:58:30
- 連結: https://redefine.ohevan.com/2024/08/20/Binary-Search/
- 版權宣告: 本作品采用 CC BY-NC-SA 4.0 进行许可。
留言