本示例详细介绍了如何在Python编程语言中高效地实现二分查找算法,并提供了代码实例。通过此教程,读者可以掌握利用二分法快速定位有序数组中的目标值的方法和技巧。
1. 算法:(设查找的数组范围为array[low, high])
(1)确定该范围内的中间位置K。
(2)将要查找的值T与array[k]进行比较,若相等则表示查找成功并返回此位置;否则根据比较结果缩小新的搜索区域。具体区间选择如下:
a. 如果array[k]>T,则由于数组有序性可知array[k,k+1,……,high]都大于T,因此新的查找范围为array[low,...,K-1]。
b. 若array[k]= low:
mid = (low + high) // 2
if array[mid] == target:
return mid
elif array[mid] > target:
return binary_search(array, low, mid - 1, target)
else:
return binary_search(array, mid + 1, high, target)
else:
return -1 # 如果未找到目标值,返回-1。
```