算法

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)

 

posted @ 2017-05-15 15:38  Ksen  阅读(196)  评论(0编辑  收藏  举报