一、递归要点
递归最大的两个特点:
调用自身
结束条件
斐波那契数列����,�㹻:
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:上面还是斐波那契数列的变形