第五课 算法的时间复杂度

Posted wanmeishenghuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第五课 算法的时间复杂度相关的知识,希望对你有一定的参考价值。

  判断一个算法的效率时,操作数量中的常数项和其他次要项常常可以忽略,只需要关注最高阶项就能得出结论。

如何用符号定性的判断算法的效率呢?

  算法的复杂度:

时间复杂度:

  算法运行后对时间需求量的定性描述。

空间复杂度:

  算法运行后对空间复杂度的定性描述。

数据结构课程重点关注的是算法的效率问题,因此,整个课程会集中的讨论算法的时间复杂度,但其使用方法完全可以用于空间复杂度的判断。

大O表示法:

技术分享图片

 

常见的时间复杂度:

线性时间复杂度:

技术分享图片

 

对数阶时间复杂度:

技术分享图片

 

平方阶时间复杂度:

技术分享图片

 

下面代码片段的时间复杂度是什么:

练习1:

技术分享图片

 

 

技术分享图片

 

练习2:

技术分享图片

 

技术分享图片

func函数的时间复杂度是O(n*n)。

 

练习3:

技术分享图片

技术分享图片

test函数的时间复杂度为O(n*n*n)。

 

总结:

  时间复杂度是算法运行时对于时间的需求量

  大O表示法用于描述算法的时间复杂度

  大O表示法只关注操作数量的最高次项

  常见的时间复杂度为:线性阶、平方阶和对数阶。

 


以上是关于第五课 算法的时间复杂度的主要内容,如果未能解决你的问题,请参考以下文章

周六直播:小世界网络模型 | 网络科学导论第五课

java 第五课 异常

第五节算法---整体

吴恩达深度学习 第五课 第三周 序列模型和注意力机制

Makefile第五课:Makefile介绍

Quartz 第五课 SimpleTriggers 官方文档翻译