算法的时间复杂度就是运行这个算法的运行时间。 例如 :
把执行一个句子的运行时间作一个时间单元 int i; 的时间复杂度就是O(1)
for(int i=0;i<n;i++)
{
cout<<"yes"<<endl;
}
int i ; 执行1次 i<n ; 执行n+1次 i++执行n次
cout<<"yes"<<endl; 执行n次
这个算法一共执行了3n+2次
但n很大时2可以忽略不计,去掉2
3n的时间复杂度记作O(n) , 系数都化作1
时间复杂度的阶级大小:
O(1)<O(logn)<O(n)<O(nlogn)<O(n²)<O(n³)<O(2的n次方)<O(n!)<O(n的n次方)
就像它们的数学图像一样
所以时间复杂度只用看最大的阶级就行了,其他的都可以忽略,例如:运行3n²+2n+1次的时间复杂度为O(n²)