单选题

下面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
A

当lst中存在重复的target时,该函数总能返回最后一个target的位置,即便lst全由相同元素组成

B

当target小于lst中所有元素时,该函数会返回0

C

循环条件改为 while low <= high 程序执行效果相同,且能提高准确性

D

将代码中 (low + high + 1) // 2 修改为 (low + high) // 2 效果相同

赣ICP备20007335号-2