赞
踩
F(n)=3*n^2+2n+1//F(n)为次数函数,时间复杂度O(n^2)
O(n^2)表示最大量级是n^2,不代表函数循环的次数是n^2。
O(M+N)
M远大于N,O(M)N远大于M,O(N)M,N相等,O(M)或O(N)
最好:O(1),最坏:O(logN)
- 第一次:n
- 第二次:n/2
- ...
- 第k次:1
- 1*2^k=n
- k=log2(n)//一2为底n的对数
尽管会有提前结束,但忽略不计。
不算函数参数,计算新开辟的空间
例1:空间复杂度O(N)
例2:O(1)不算函数传进来的数组,开辟常数个变量
例3:O(N)
n加1个函数栈帧,每个栈帧是O(1)
例4:空间复杂度O(N)
如下图:函数调用是先调用完左边的再开始调用右边,最大的空间就是从Fib(N)到Fib(2),后面调用就是重复使用空间。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。