本文用python3实现了二分查找的四种变体。
(一)查找第一个值等于给定值的元素
(二)查找最后一个值等于给定值的元素
(三)查找第一个大于等于给定值的元素
(四)查找最后一个小于等于给定值的元素
python3:
(一)查找第一个值等于给定值的元素
def bSearchV1(s, k):
low = 0
high = len(s) - 1
while low <= high:
mid = low + (high - low) // 2
if s[mid] > k:
high = mid - 1
elif s[mid] < k:
low = mid + 1
else:
if mid == 0 or s[mid - 1] != k:
return mid
else:
high = mid - 1
return -1
(二)查找最后一个值等于给定值的元素
def bSearc