算法复杂度
计算一个算法的时间算法复杂度:
一个顺序结构的程序没有循环,倘若他有10句代码那它的时间复杂度为:
T(10)=10
若是其中有一个for循环的话,且循环n次,那这个n就是问题规模,那么他的算法时间复杂度为:
T(n)=n+10
前者的算法时间复杂度是10 后者是n+10,假设n无穷大时,常数项是很不重要的可是省去。
而如果在这个代码里的for循环中还有一个for循环,那么这个执行的语句次数为
T(n)=n^2+10
即便在这个程序中再加一个for循环他执行的规模也不过是:
T(n)=n^2+n+10
若n无穷大时,其决定作用的是n的平方,所以,我们得出,在算法复杂度中起决定作用的是指数最大的项。
那他们的算法时间复杂度为:
O(1),O(n),O(n^2),O(n^2).
我们只取指数最高的项并且把他的系数化为一。
还要记得一个公式:
O(1)<O(log(以2为底N的对数))<O(n)<O(nlog(以2为底N的对数))<O(n^2)<O(n!)<O(n^n)
"常对幂指阶"依次增大。

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号