算法时间复杂度分析
  TEZNKK3IfmPf 2023年11月12日 25 0

1、时间复杂度分析

  • 只关注循环执行次数最多的一段代码

  • 总复杂度等于最高阶项的复杂度

  • 嵌套代码的复杂度等于嵌套内外代码复杂度的乘积

推导大O阶:

1、用常数1取代运行时间中的所有加法常数

  • 2、在修改后的运行次数函数中,只保留最高阶项

  • 3、如果最高阶项存在且不是1,则去除与这个项相乘的常数。得到的结果就是大O阶。

常见的时间复杂度

常数阶

线性阶

平方阶

对数阶

线性对数阶

立方阶

指数阶

阶乘阶

O(1)

O(n)

O(n*n)

O(logn)

O(nlogn)

O(n的立方)

O(2的n次方)

O(n!)

从小到大依次是:
O(1) < O(logn) < O(n) < O(nlogn) < O(n*n)< O(n的立方) < O(2的n次方) < O(n!) <O(n的n次方)

2、空间复杂度

空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度,记做S(n)=O(f(n))。比如直接插入排序的时间复杂度是O(n^2),空间复杂度是O(1) 。而一般的递归算法就要有O(n)的空间复杂度了,因为每次递归都要存储返回信息。一个算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量。

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

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

暂无评论

推荐阅读
TEZNKK3IfmPf