資料結構與演算法
與陣列中央的元素比較、每次將搜尋範圍縮小一半的二分搜尋,其使用的前提條件為下列何者?
- A資料的個數是2的冪次
- B資料依鍵的順序排序
- C資料中不含相同的值
查看答案與解析
正確答案:B. 資料依鍵的順序排序
二分搜尋依與中央元素比較的結果,判斷目標值在前半還是後半,將範圍減半。這是因為資料已排序才能如此判斷,未排序的陣列無法使用。即使資料個數不是2的冪次,只要以 (下端 + 上端) ÷ 2 無條件捨去等方式決定中央位置,就能正常運作。即使含有相同的值也能搜尋,會找到其中某一個(若要找出最前面的位置則需要一點技巧)。
- A. 只要以無條件捨去等方式決定中央位置,任何個數都能使用。
- B. 正確。因為已排序,才能由與中央的比較決定要留下前半還是後半。
- C. 即使有相同的值也能搜尋,會找到其中之一。
繼續練習資料結構與演算法的另外9題