Skip to content

Files

Latest commit

Apr 23, 2020
634896c · Apr 23, 2020

History

History

BinarySearch

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Apr 23, 2020
Apr 23, 2020
Apr 23, 2020
Apr 23, 2020

二分搜尋法

二分搜尋法是線性搜尋法的改進版,可以用於已排序的線性資料結構的搜尋,例如:一維陣列(array)、串列(list)、堆疊(stack)或是佇列(queue)。一般搜尋演算法需要輸入一個陣列,搜尋陣列中的特定元素,並且回傳特定元素的索引位置,如果沒有找到,則回傳 -1。二分搜尋法會輸入一個已排序的陣列,從中間的元素開始進行比對,如果比搜尋目標大則往右/後搜尋,如果比搜尋目標小則往左/前搜尋。每次只會搜尋左/右半邊,如此就可以降低比對的次數,直到陣列被搜尋完畢為止。

測試

a = [1, 2, 3, 5, 6, 7, 30, 40, 70]
@test binarysearch(a, 1) == 1
@test binarysearch(a, 40) == 9
@test binarysearch(a, 7) == 5
@test binarysearch(a, 100) == -1

測試資料

a = [1, 2, 3, 5, 6, 7, 30, 40, 70]