如何计算算法的复杂度

140 阅读1分钟

常见算法和数据结构

一、概念

都是按照Big O notayion方法表示

常见复杂度

注意

  • 只看最高复杂度
  • 常数复杂度都用O(1) 可以是1 2 ...

1.1 时间复杂度

1.2 空间复杂度

O(1)复杂度

O(n)复杂度和O(n ^ 2)复杂度

纵坐标 计算机操作次数,横坐标 n的值

如何计算时间复杂度

代码执行了多少次 image.png

递归

斐波那契数列

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时间复杂度 二分查找

空间复杂度

image.png