注意:
1. python中二分法取中点方法: mid = l + ( r - l ) // 2
2. 递归的时候,一定要包括中点
a) 旋转点在左边,则递归 (l,mid)
b) 旋转点在右边,则递归(mid+1,r)
3. 递归的过程中,一定要设置返回值
res = helper(l,r)
不能直接,那是更新最大最小值,或者append
helper(l,r)
注意普通二分查找,是不包括中点的
def search_normal(l,r):
while l<=r:
mid = l+(r-l)//2
print('normal')
print(l,mid,r)
if nums[mid] == target :
return mid
elif nums[mid]<target:
l = mid+1
elif nums[mid]>target:
r = mid-1
else:
return mid
return -1