1.时间复杂度与空间复杂度分析

1.时间复杂度分析

  时间复杂度通常用大O表示法,所有代码的执行时间 T(n) 与每行代码的执行次数 n 成正比,即

  

 它表示代码执行时间随数据规模增长的变化趋势,也叫渐进时间复杂度,简称时间复杂度。

 常见时间复杂度量级有O(1),O(log(n)),O(n),O(nlog(n)),O(n2),O(n3),O(2n),O(n!),其中O(2n),O(n!)为非多项式量级,剩余的为多项式量级。

 时间复杂度分析法则:

  a.只关注循环次数最多的那一段代码

  b.总复杂度等于量级最大的那段代码的时间复杂度

  c.嵌套代码的复杂度等于嵌套内外代码复杂度的乘积

 时间复杂度有最好时间复杂度,最差时间复杂度,平均时间复杂度,均摊时间复杂度,一般用平均时间复杂度来考量。

2.空间复杂度分析

  类比时间复杂度,空间复杂度全称渐进空间复杂度,表示空间随数据规模的增长的变化趋势。

  常见空间复杂度有O(1),O(n), O(n2)

  注意点:空间复杂度指的是操作数据时额外申请的空间,比如一个栈存储了n个数据,但是栈的空间复杂度为O(1),因为进栈出栈时都只操作栈顶元素,只需申请一个临时变量。

 

 

posted @ 2019-11-25 20:31  曲项向天歌  阅读(304)  评论(0编辑  收藏  举报