python基础在线求解

2025-06-27 09:00:28
推荐回答(1个)
回答1:

(1) 10;5;10
(2)查找成功平均次数是10(有一半成功几率应该是5次,但算法估算是去常数的,所以用O表示还是10),不成功就是10
(3)二分是4次,不成功也是4次

a=[34,56,78,87,88,90,101,112,520,888]

def binsearch(num):
    start=0
    end=len(a)-1
    while start<=end:
        mid=(start+end)//2
        if num==a[mid]:
            return mid
        elif num>a[mid]:
            start=mid+1
        else:
            end=mid-1
    return -1

print(binsearch(8))