算法 时间复杂度
  v5bEezpf7PPs 2023年11月02日 78 0

@[TOC](算法 时间复杂度)

<hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1">

前言

记录下算法的 时间复杂度

<hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1">

一、内容

以下是维基百科的解释,我感觉是太官方了:

在计算机科学中,算法的时间复杂度(Time complexity)是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,亦即考察输入值大小趋近无穷时的情况。例如,如果一个算法对于任何大小为 n (必须比 n0 大)的输入,它至多需要 5n3 + 3n 的时间运行完毕,那么它的渐近时间复杂度是 O(n3)。 为了计算时间复杂度,我们通常会估计算法的操作单元数量,每个单元运行的时间都是相同的。因此,总运行时间和算法的操作单元数量最多相差一个常量系数。 相同大小的不同输入值仍可能造成算法的运行时间不同,因此我们通常使用算法的最坏情况复杂度,记为 T(n) ,定义为任何大小的输入 n 所需的最大运行时间。另一种较少使用的方法是平均情况复杂度,通常有特别指定才会使用。时间复杂度可以用函数 T(n) 的自然特性加以分类,举例来说,有着 T(n) = O(n) 的算法被称作“线性时间算法”;而 T(n) = O(Mn) 和 Mn= O(T(n)) ,其中 M ≥ n > 1 的算法被称作“指数时间算法”。

<hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1">

总结

我根据自己的理解简单的总结了下,在计算时间复杂度的时候最主要是要遵循这几个原则吧:

1.要剔除掉你算好的函数的低阶项和首项系数,举得例子就很好:5n3 + 3n 直接就处理成了O(n3)。

2.通常使用算法的最坏的情况复杂度。 3.明白时间复杂度的排序,以下是基本的排序,更为详细的可以自行查阅

算法 时间复杂度_运行时间

有大佬写的文章可以让人更好理解,这是链接时间复杂度

欢迎大佬多多来给萌新指正,欢迎大家来共同探讨。

如果各位看官觉得文章有点点帮助,跪求各位给点个“一键三连”,谢啦~

声明一下:本博文章若非特殊注明皆为原创,若需转载请保留原文链接https://blog.csdn.net/Wrinkle2017/article/details/118729235————————————————————————————————

版权声明

版权声明:本博客为非营利性个人原创所刊登的所有作品的著作权均为本人所拥有 本人保留所有法定权利,违者必究! 对于需要复制、转载、链接和传播博客文章或内容的 请及时和本博主进行联系 对于经本博主明确授权和许可使用文章及内容的 使用时请注明文章或内容出处并注明网址 转载请附上原文出处链接及本声明

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

v5bEezpf7PPs