算法图解1.2二分查找报TypeError: list indices must be integers or slices, not float解决方法
程序员文章站
2022-05-05 17:38:38
...
def binary_search(list, item):
low = 0
high = len(list) - 1
while low <= high:
mid = (low + high) / 2
guess = list[mid]
if guess == item:
return guess
if guess > item:
high = mid - 1
else:
low = mid + 1
return None
my_list = [1, 3, 5, 7, 9]
print(binary_search(my_list, 3))
print(binary_search(my_list, -1))
将以下这一行
mid = (low + high) / 2
改成
mid = int((low + high) / 2)
将其强转成整型。
因为列表索引必须是整型或切片
上一篇: 选择排序 O(n^2)
下一篇: Drying 二分查找