算法复杂度

计算一个算法的时间算法复杂度:

一个顺序结构的程序没有循环,倘若他有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)

"常对幂指阶"依次增大。 

 

posted @ 2021-11-12 20:06  长安背剑客  阅读(133)  评论(0)    收藏  举报