python 算法
刚刚学习算法,持续增加,目前刚刚学习python,只能使用python实现
1、冒泡
实现列表[11,222,2,4,555,65666,0,22,929929,9,2986]的冒泡排序
1 li = [11,222,2,4,555,65666,0,22,929929,9,2986] 2 for i in range(1,len(li)): 3 for j in range(len(li)- i): #循环到li列表长度=列表长度-已完成排序的个数 4 if li[j] > li[j + 1]: #左边比右边大,互换位置,依次类推 5 temp = li[j] 6 li[j] = li[j + 1] 7 li[j +1 ] = temp 8 print(li)
结果:[0, 2, 4, 9, 11, 22, 222, 555, 2986, 65666, 929929]
2、递归
使用递归实现斐波那契数列
1 def feb(deep, a1, a2): 2 if deep == 10: 3 return a1 4 f = a1 + a2 5 res = feb(deep + 1, a2, f) 6 return res 7 8 9 s = feb(1, 0, 1) 10 print(s)
使用递归实现1*2*3*4*5*6*7
1 def f1(a1,a2): 2 if a2 > 7: 3 return a1 4 sum =a1 * a2 5 return f1(sum,a2+1) 6 7 res = f1(1,2) 8 print(res)