什么是算法?关于算法复杂度的分析

算法的定义

  • 一个有限的指令集
  • 接受一些输入(有时不需要输入)
  • 产生输出
  • 在有限步骤之后终止

算法的复杂度分析

n表示输入规模

空间复杂度S(n):

根据算法写成的程序在执行时占用存储单元的长度。这个长度与输入数据的规模有关,空间复杂度过高的算法可能导致内存溢出。

时间复杂度T(n):

根据算法写成的程序在执行时耗费时间的长度。这个长度与输入数据的规模有关,时间复杂度过高的算法可能导致长时间无法得到输出。


算法的复杂度,可以理解为一个关于输入规模的函数,当输入规模增大时,所需的时间和空间以一种怎样的关系增长。是成指数增长或是成对数增长或是成线性增长等等。。。

增长数量级

描述 数量级 说明 举例
常数级 1 普通语句
对数级 ㏒N 二分策略
线性级 N 循环
线性对数级 N㏒N 分治
平方级 双层循环
立方级 三层循环
指数级 2^N 穷举查找
阶乘级 N!
 

猜你喜欢

转载自blog.csdn.net/sinat_29718177/article/details/80060340