二分查找
二分法又叫二分查找,二分(对半取元素)
作用:从某个有序容器中一半一半的取元素,最终获取到目标值
限制:所查找容器必须事先排好序
list1 = [0,5,10,60,90]
def er(nums,target):
left, right = 0, len(nums) - 1
while left <= right:
mid = (left + right) // 2
if nums[mid] < target:
left = mid + 1
elif nums[mid] > target:
right = mid - 1
else:
return mid
return -1
print(er(list1, 60))
时空复杂度(时间、空间)
时间复杂度:程序执行花费的时间
空间复杂度:程序执行时花费的内存
时间复杂度和空间复杂度是保持平衡的
二分法的变形
容器元素先升序再降序