1.二分法步骤
1.候选区间
2.不断循环:
2.1.计算中点:mid=(left+right)/2
2.2判断中点是否合法mid=(left+right)/2,根据重点的计算结果调整[left,right]
2.二分用途
1.查找有序列表a中元素x的下标
常见部分的二分:bisect——数组二分查找算法
2.浮点二分
3.二分答案
3.例:
浮点二分,计算根号2,x的平方>0具有单调性,保留三位小数
left,right=1,2 #先找出左右区间
for i in range(50): #循环50次肯定能获得一个比较准确的结果,数字也可以更大
mid=(left+right)/2
if mid*mid>2: #在右半部分
right=mid
else: #在左半部分
left=mid
print("{:.3f},{:.3f}".format(left,right))
# 结果:1.414,1.414
# 二分答案题型,当所求答案为整数且具有单调性质,采用猜答案+二分
# 确定初始范围:[left,right]
# 当left<=right时
# mid=(left+right)//2
# 判断mid是否合法:
# 如果合法,更新ans
# 调整左右区间:left=mid+1
# right=mid-1
写一下:364