冒泡排序算法与递归
li = [33,2,1,10] for i in range(len(li)-1): //因为range(4)是0 1 2 3(不包含4),当i= 3时next_value不存在 if li[i] >li[i + 1]: temp = li[i] li[i] = li[i + 1] li[i+1] = temp print (li) //把最大的放到最后
第一次操作。以后每次操作把len(li)-1 -1
ps:执行到return语句时,会退出函数,return之后的语句不再执行。但将return语句放在try语句块中,是个例外。
所以,可以把这些操作外面用一个循环取代:
for j in range(1,len(li)): for i in range(len(li) - j): if li[i] > li[i+1]: temp = li[i] li[i] = li[i+1] li[[i+1] = temp print (li)
应用递归算法的最有效途径是斐波那契数列。
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。
def f4(a1, a2): print (a1) a3 = a1 + a2 f4(a2, a3)