0时间复杂度


如果要精确研究循环的条件执行了多少次,是个很麻烦的事情,又因为真正计算是循环结构的循环体。所以在研究算法效率时候,我们只关系核心代码的执行次数。这样
简化分析。
关键就是一句话:把最重要的核心操作的次数与输入规模关联起来。当输入规模不断增大时,算法增长量(核心代码执行次数)的一个抽象规律
1.算法函数中的常数可以忽略;
2.算法函数中最高次幂越小,算法效率越高。(最核心)
3.算法函数中最高次幂的常数因子可以忽略;(f(3n^2) 和f(n^2) 算法效率一样)
大O记法:时间复杂度的度量

大O记法的规则:
1:用常数1取代运行时间中的所有加法常数
2:在修改后的运行次数中,只保留最高次数项,并且去掉最高次数项前面的系数(系数变为1)

语句总的执行次数T(n)是关于问题规模N的函数。算法的时间复杂度就是算法时间度量,记作T(n)=O(f(n)).(默认前提是执行次数=执行时间)
T(n)=O(f(n)) 也就说明随着N输入规模增大,T(n)增长最慢的算法为最优算法;而T(n)增长快慢由f(n)算法函数决定。

 

 

 如果时间复杂度是平方阶或者更复杂,应该进行算法优化。反正超过平方阶的函数就需要优化。

函数嵌套调用的时间

 

 

 

 

 

posted on 2020-07-28 16:17  章画  阅读(225)  评论(0编辑  收藏  举报

导航