01_算法复杂度

01_算法复杂度

分析算法复杂度即是分析比较算法性能

分析算法性能从两个方面考虑:

  1. 运行时间(运行程序所要花费的时间)
  2. 运行空间出发(运行程序所需要的内存)

一般主要考虑算法的时间复杂度,通过输入的规模来量化算法运行的时间,复杂度是随着输入规模增大的增长趋势。

影响时间复杂度的因素有很多,例如:

  • 硬件
  • 编译器
  • 处理器
  • 操作系统安排处理顺序等
    因此在考虑时间复杂度时将不考这些影响,假定计算机每步操作都需要一个固定的时间。

算法复杂度记法
O ( n ) O(n) O(n)这个集合当 n n n足够大时,增长趋势小于线性函数
01_算法复杂度_第1张图片
O ( g ( n ) ) = { f ( n ) ∣ ∃ c , n 0 , s . t . , 0 ⩽ f ( n ) ⩽ c g ( n ) , n ⩾ n 0 } O(g(n)) = \{f(n)|\exists c,n_0,s.t.,0 \leqslant f(n) \leqslant cg(n), n \geqslant n_0\} O(g(n))={f(n)c,n0,s.t.,0f(n)cg(n),nn0}

你可能感兴趣的:(学习笔记,算法)