(二)时间复杂度和空间复杂度
上一篇:(一)算法
大O表示法:
T(n)=O(f(n))
f(n)是程序运行次数和的函数,一般和循环结构次数n相关
O(),取级数,取函数的数量级:去掉常数和系数,取最大的级数
eg:4n²+2n+5取级数:
O(f(n))=O(n²)
常见的时间复杂度量级:
int i = 1;
while(i<n)
{
i = i * 2;
}
-
线性阶O(n):一阶循环
-
for(m=1; m<n; m++)
{
i = 1;
while(i<n)
{
i = i * 2;
}
}
-
-
立方阶O(n³):三次循环
-
K次方阶O(n^k):k次循环
- 指数阶(2^n)
从上而下时间复杂度越来越大,程序的执行效率也越来越低
S(n)=O(f(n))
O(1):算法执行所需要的临时空间不随着变量n的大小变化
int i = 1;
int j = 2;
++i;
j++;
int m = i + j;
O(n):空间和变量n相关
int[] m = new int[n]
本文来自博客园,作者:Tenerome,转载请注明原文链接:https://www.cnblogs.com/Tenerome/articles/DataStructure2.html