好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

算法篇-算法基础2

一、递归要点

递归最大的两个特点:

调用自身

结束条件

斐波那契数列:

 
def fib(n):    

'''裴波那契'''
    f = [1,1]   
    for i in range(2, n+1):
        f.append(f[-1]+f[-2])   
         print(f)  

     return f[n]

fib(5)

# 递归方式实现 生成前20项

lis =[]

for i in range(20):    

    if i ==0 or i ==1:#第1,2项 都为1
        lis.append(1)    else:
        lis.append(lis[i-2]+lis[i-1])#从第3项开始每项值为前两项值之和
print(lis)
 

二、列表查找

1、列表查找:从列表中查找指定元素

 输入:列表、待查找元素

输出:元素下标或未查找到元素 

2、顺序查找:从列表第一个元素开始,顺序进行搜索,直到找到为止。返回找到的那个目标的索引

3、二分查找:从有序列表的候选区data[0:n]开始,通过对待查找的值与候选区中间值的比较,可以使候选区减少一半。

  二分查找:时间复杂度是O(logn)

   二分查找的前提:列表是有序的 

切片的复杂读是O(n) #因为切的时候是赋值的

三、列表排序

 1、列表排序

    将无序列表变为有序列表

2、应用场景

    各种榜单

    各种表格

    给二分查找用

    给其他算法用

    输入:无序列表

    输出:有序列表 

ps:上面还是斐波那契数列的变形

查看更多关于算法篇-算法基础2的详细内容...

  阅读:29次