算法练习

1、二分法:

li = [1,2,3,4,5,6,7,8,9]
def  foo(n):
    start = 0
    end = len(li)-1
    while start <= end :
        mid =(start+end)//2
        mid_val = li[mid]
        if mid_val == n :
            print(mid)
            break
        if mid_val < n:
            start = mid +1
            continue
        if mid_val > n :
            end = mid -1
            continue
    print('不在这个列表中')
foo(99)

2、斐波那契

def foo(n):
    if n ==1 or n==2:
        return 1
    return foo(n-1)+foo(n-2)
def index(n):
    for i  in range(1,n+1):
        print(foo(i),end='   ')
index(10)

猜你喜欢

转载自www.cnblogs.com/weidaijie/p/10276992.html
今日推荐