下面Python代码用于在升序lst(list类型)中查找目标值target最后一次出现的位置。相关说法,正确的是( )。
def binary_search(lst, target):
if len(lst) == 0:
return None
low, high = 0, len(lst)-1
while low < high:
mid = (low + high + 1) // 2 # 向上取整
if lst[mid] <= target:
low = mid
else:
high = mid - 1
return low if lst[low] == target else None
当lst中存在重复的target时,该函数总能返回最后一个target的位置,即便lst全由相同元素组成
当target小于lst中所有元素时,该函数会返回0
循环条件改为 while low <= high 程序执行效果相同,且能提高准确性
将代码中 (low + high + 1) // 2 修改为 (low + high) // 2 效果相同