常数阶 :O(1)
int sum=0 , n=100 ; 执行一次
sum= (1+n) * n / 2 ; 执行一次
一般一个句子(不是循环里的)执行一次
对数阶:O(logn)
int i=1;
while(i<n)
{
i=i*2;
}
i每次都乘2,设要执行x次循环才结束
则2的x次方=n ,要执行x=log2的n次
线性阶:O(n)
for(int i=0;i<n;i++)
{
时间复杂度为O(1)的句子;
}
平方阶:O(n²)
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
时间复杂度为O(1)的句子;
}
时间复杂度为O(n²)
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
时间复杂度为O(1)的句子;
}
时间复杂度为O(n*m)
其他的算法复杂度都太大了,一般用不着。
毕竟算法追求的是速度,所以算法复杂度一般不会大于O(n³)