二分法

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)

 3、冒泡法排序

import random
def foo(li):
    for j  in range(0,len(li)-1):
        for i in range (0,len(li)-1):
            if li[i]>li[i+1]:
                li[i],li[i+1] = li[i+1],li[i]
li = [i for i in range(1000)]
random.shuffle(li)
foo(li)
print(li)

I can feel you forgetting me。。 有一种默契叫做我不理你,你就不理我

原文地址:https://www.cnblogs.com/weidaijie/p/10276992.html