如果出于某种原因需要一个新列表,或者不想篡改原始列表,可以使用sorted()
这是我们的测试内容:
bin_list = [1,2,3,5,6,9,11,12,15,20,22]
search_value_a...测试列表的长度是11,但是最后一个索引是[10]。...max_index+min_index)//2之后添加这个:
print (f'min: {min_index} , mid: {mid_index} , max: {max_index}')
但是它更快吗?...有几个问题给二分查找带来了困难。
排序
列表的长度
低于目标的值
以上所有因素,让线性领先。...上图是排序后结果,下图需要进行排序
总结
二分比线性快吗?是的,但要看情况而定。
如果有人告诉你二分查找更快,那是因为它通常是更快的。