use*_*979 7 python binary-search
我正在尝试编写一个二进制搜索,它采用排序列表并找到小于目标值的最大数字:
def binary_max(list, target)
hi=len(list)-1
lo=0
while lo<=hi:
mid=(hi+lo)//2
midval=list[mid]
if midval > target:
hi=mid-1
elif midval <= target:
lo=mid
if hi==lo:
break
return(list[mid])
pass
Run Code Online (Sandbox Code Playgroud)
但是,例如,当有一个长度为2的列表时,hi = 1并且中间值总是卡在lo上,无论如何都要避免这个问题?
谢谢
| 归档时间: |
|
| 查看次数: |
6467 次 |
| 最近记录: |