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)