),適用于有序的數(shù)據(jù)集合。
二分查找算法的核心思想是每次取中間位置的值與目標(biāo)值進(jìn)行比較,根據(jù)比較結(jié)果將查找范圍縮小一半,直到找到目標(biāo)值或者查找范圍為空。
中,我們可以使用遞歸和迭代兩種方式實(shí)現(xiàn)二分查找算法。
ary_search(array, target)(array) == 0 False
elseid(array) // 2id] == target True
elseid]aryid], target)
elsearyid+1], target)
ary_search(array, target)(array)-1
while left<= rightid = (left + right) // 2id] == target Trueid]id - 1
elseid + 1 False
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 7tary_search(array, target))
輸出結(jié)果為True,說(shuō)明算法實(shí)現(xiàn)正確。
中,我們可以使用遞歸和迭代兩種方式實(shí)現(xiàn)二分查找算法。需要注意的是,在實(shí)現(xiàn)過程中需要注意邊界條件的處理。