常见算法和数据结构
一、概念
都是按照Big O notayion方法表示
常见复杂度
注意
- 只看最高复杂度
- 常数复杂度都用O(1) 可以是1 2 ...
1.1 时间复杂度
1.2 空间复杂度
O(1)复杂度
O(n)复杂度和O(n ^ 2)复杂度
纵坐标 计算机操作次数,横坐标 n的值
如何计算时间复杂度
代码执行了多少次
递归
斐波那契数列
def fib(n):
if n == 0 or n == 1:
return n
return fib(n-1) + fib(n-2)
def main():
print fib(6)
if __name__ == '__main__':
main()
图解
主定理
常见考题 二叉树的前序 中序 后序 图的遍历 DFS BFS时间复杂度 二分查找