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)