建立二分搜尋演算法的流程圖
關於框架
這個十節點流程圖會在已排序的陣列中搜尋目標值。流程先將 low 設為零、high 設為 n 減一,檢查 low 是否小於或等於 high,接著計算中間值。若找到相符的值,就回傳 mid;否則透過第二次比較決定要變更哪一個邊界。
兩個更新步驟會將 low 設為 mid 加一,或將 high 設為 mid 減一,然後迴圈回到邊界檢查。當搜尋範圍耗盡時,流程會回傳 -1。中間值方塊寫的是 (low+high) / 2,但未說明整數取法,因此在以程式碼為導向的版本中,需要釐清這項細節。
你可以使用這張圖,以小型的已排序陣列進行手動追蹤。記錄每次迭代後的 low、high 與 mid,並分別測試存在與不存在的目標值。此範例會回傳相符的索引,但沒有特別處理尋找第一個重複值的分支。
包含內容
二分搜尋演算法流程圖
✦ Free preview · Sign in to use
常見問題
此範例假設陣列已排序。比較會依照這個順序逐步縮小搜尋範圍;排序並不是流程圖中的步驟。
方塊中未說明如何取整數。若採用以索引為基礎的版本,請明確指定整數取法,例如使用 low + floor((high-low)/2)。
當 low 大於 high 時,範圍更新會停止。接著 low <= high 的「否」分支會回傳 -1。
免費開始,無需信用卡。