下⾯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效果相同