冒泡排序算法与递归

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)

 

posted on 2017-10-11 19:17  huzhehao  阅读(187)  评论(0编辑  收藏  举报

导航