二分搜尋演算法流程圖

流程圖10 個節點教育 · 演算法學習由一則提示生成
唯讀預覽

原始提示

建立二分搜尋演算法的流程圖

做一份自己的版本

關於框架

透過縮小範圍追蹤二分搜尋

這個十節點流程圖會在已排序的陣列中搜尋目標值。流程先將 low 設為零、high 設為 n 減一,檢查 low 是否小於或等於 high,接著計算中間值。若找到相符的值,就回傳 mid;否則透過第二次比較決定要變更哪一個邊界。

兩個更新步驟會將 low 設為 mid 加一,或將 high 設為 mid 減一,然後迴圈回到邊界檢查。當搜尋範圍耗盡時,流程會回傳 -1。中間值方塊寫的是 (low+high) / 2,但未說明整數取法,因此在以程式碼為導向的版本中,需要釐清這項細節。

你可以使用這張圖,以小型的已排序陣列進行手動追蹤。記錄每次迭代後的 low、high 與 mid,並分別測試存在與不存在的目標值。此範例會回傳相符的索引,但沒有特別處理尋找第一個重複值的分支。

包含內容

你會得到

  • 十個演算法節點與三個決策菱形
  • 初始化 low 與 high 搜尋邊界
  • 兩條範圍更新路徑迴圈回到邊界檢查
  • 回傳 mid 與回傳 -1 的終止結果
流程圖

二分搜尋演算法流程圖

演算法二分搜尋電腦科學資料結構

✦ Free preview · Sign in to use

常見問題

常見問題

此範例搜尋的是哪一種陣列?

此範例假設陣列已排序。比較會依照這個順序逐步縮小搜尋範圍;排序並不是流程圖中的步驟。

中間值的除法應如何解讀?

方塊中未說明如何取整數。若採用以索引為基礎的版本,請明確指定整數取法,例如使用 low + floor((high-low)/2)。

如果找不到目標值會發生什麼事?

當 low 大於 high 時,範圍更新會停止。接著 low <= high 的「否」分支會回傳 -1。

二分搜尋演算法流程圖

免費開始,無需信用卡。

Free preview · Sign in to use