Algorithm

概述

参考:

Algorithm(算法)

Complexity

参考:

Complexity(复杂度) 指运行某算法所需的资源量。通常不会精确计算,而是用一种表示法来表示一个数值的范围。

特别关注的是计算时间和存储空间。问题的复杂度则是指解决该问题的最佳算法所具有的复杂度。

常用 O() 表示。如下图时间复杂度所示,越靠左上角的复杂度越糟糕。

800

时间复杂度通常指一个函数运行完成需要执行某些行代码的次数。比如:

  • 恒定时间的复杂度是 $O(1)$
  • for 循环复杂度是 $O(n)$,i.e. 循环 n 次。查找
  • 嵌套 for 循环复杂度通常是 $O(n^2)$
  • 二分查找的复杂度是 $O(\log_{}n)$
  • etc.