(一)概念:
时间频度:一个算法中的语句执行次数称为语句频度或时间频度;记为T(n)。
时间复杂度:若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。*记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。*
例子:T(n) = n^2 - n + 4,则当n趋于无穷大时,f(n)/T(n)的极限是一个常数,f(n)= n^2即可;所以这个算法的时间复杂度是O(n^2)
(二)怎么样计算时间复杂度?
(a)拿到算法的执行次数函数 T(n);常数项并不影响函数的增长速度;所以当 T(n) = c,c 为一个常数的时候,我们说这个算法的时间复杂度为 O(1);如果 T(n) 不等于一个常数项时,直接将常数项省略。
例子
(b)拿到算法的执行次数函数 T(n)后;高次项对于函数的增长速度的影响是最大的。n^3 的增长速度是远超 n^2 的,同时 n^2 的增长速度是远超 n 的。忽略低次项的影响。

(c)拿到算法的执行次数函数 T(n)后;因为函数的阶数对函数的增长速度的影响是最显著的,所以我们忽略与最高阶相乘的常数。

小结:
如果一个算法的执行次数是 T(n),那么只保留最高次项,同时忽略最高项的系数后得到函数 f(n),此时算法的时间复杂度就是 O(f(n))。
(3)常用的函数阶

(4)时间复杂度容易求出,但是时间频度不易求:
有更详细内容
(a)对于一个循环,假设循环体的时间复杂度为 O(n),循环次数为 m,则这个
循环的时间复杂度为 O(n×m)。

(b)对于多个循环,假设循环体的时间复杂度为 O(n),各个循环的循环次数分别是a, b, c…,则这个循环的时间复杂度为 O(n×a×b×c…)。分析的时候应该由里向外分析这些循环。

(3)对于顺序执行的语句或者算法,总的时间复杂度等于其中最大的时间复杂度。

此时时间复杂度为 max(O(n^2), O(n)),即 O(n^2)。
(4)对于条件判断语句,总的时间复杂度等于其中 时间复杂度最大的路径 的时间复杂度。

时间复杂度为 max(O(n^2), O(n)),即 O(n^2)。
以上对时间频度的推导借鉴此链接有更加详细讲解

计算算法的时间复杂度相关推荐

  1. java中怎么计算算法的时间复杂度_算法的时间复杂度和空间复杂度计算

    一.算法的时间复杂度定义 在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级.算法的时间复杂度,也就是算法的时间量度.记作:T(n) ...

  2. 计算算法的时间复杂度和空间复杂度

    算法的时间复杂度和空间复杂度-总结 通常,对于一个给定的算法,我们要做 两项分析.第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式.数学归纳法等.而在证明算法 ...

  3. java中怎么计算算法的时间复杂度,算法时间复杂度的计算方法

    1. 时间复杂度 时间复杂度是指程序运行从开始到结束所需要的时间.时间复杂度的计算一般比较麻烦,故在数据结构的研究中很少提及时间复杂度.为了便于比较同一个问题的不同算法,通常做法是,从算法中选取一种对 ...

  4. 计算算法的时间复杂度(例题)

  5. 算法的时间复杂度到底怎么算?

    算法的时间复杂度到底怎么算? 引言 假设计算机运行一行简单语句算作一次运算. def func1(num):print("Hello, World!\n") # 需要执行 1 次r ...

  6. 【计算理论】计算复杂性 ( 小 O 记号 | 严格渐进上界 | 分析算法的时间复杂度 )

    文章目录 一.小 O 记号 ( 严格渐进上界 ) 二.分析算法的时间复杂度 一.小 O 记号 ( 严格渐进上界 ) 如果 g(n)\rm g(n)g(n) 是 f(n)\rm f(n)f(n) 渐进上 ...

  7. 时间复杂度为on的排序算法_排序算法amp;时间复杂度计算

    对于排序算法而言,有几个重要的点: 理解此种排序算法是怎么运行的 理解算法的时间复杂度与空间复杂度计算 递推公式(关乎时间复杂度的计算) 递推公式主要为以下的形式(递归使用的复杂度也这么算): 具体推 ...

  8. 三大算法之一:分治法(带你用分治法思想优化程序,计算降低复杂算法的时间复杂度)

    目录 ​ 零.前言 1.分治法 1.含义 2.分治法主要思想 3.分治法的求解步骤 1.确定初始条件 2.计算每一部分的时间复杂度 3.合并时间复杂度 4.求解 3.最大最小值问题 1.问题描述 2. ...

  9. python二分查找时间复杂度_二分查找算法的时间复杂度计算(logN)

    二分查找算法的时间复杂度计算(logN) 马富天 2019-08-10 20:25:24 54 [摘要]二分查找算法是对顺序查找算法的优化,二分查找算法的前提是数列是一个有序数列,递增或者递减,本文就 ...

最新文章

  1. CF A. DZY Loves Hash
  2. 《VC++深入详解》学习笔记 第一章 Windows程序内部运行机制
  3. 应用jacob组件造成的内存溢出解决方案(java.lang.OutOfMemoryError: Java heap space)
  4. OpenMap教程第2部分–使用MapHandler构建基本地图应用程序–第1部分
  5. 知乎热点:数学专业的学霸们毕业后都在做什么
  6. shell脚本和常用命令
  7. 是父母讲给小孩子听的,但是成人世界更需要这些启示。
  8. 火鸡堂团队 团队展示
  9. Android动态加载字节码
  10. Google PAI资料整理及实现
  11. Hadoop之常用端口号
  12. vb.net 教程 5-21 拓展 如何给IE浏览器截图
  13. 魔兽三区服务器物理位置,魔兽三区服务器
  14. html5语音 没反映,【报Bug】关于HTML5 getUserMedia()、audio语音的问题
  15. 硬核:解决github release下载慢的问题(含github下载提速方法)
  16. outlook设置263邮件服务器,Outlook 2010中263邮箱客户端设置
  17. 【摘抄】领导力21法则-约翰·C·马克斯韦尔
  18. 手写数字识别系统(python+K-近邻完整代码)
  19. Java实现图片压缩且不改变原图尺寸
  20. iPhone手机必备宝藏APP

热门文章

  1. 这种木头比钢和陶瓷更锋利,轻松切开半熟牛排,钉穿三层木板,还永不生锈 | Cell子刊...
  2. GBin1分享:25个超酷手绘插图的网站设计
  3. Unity动态绘制多边形
  4. C语言提取字符对应的ASCAl,ascall码对照表(ASCII码表)
  5. STM32学习笔记---OLED页寻址方式
  6. 在单面打印机上使用WPS实现手工双面打印
  7. IP-guard苹果加密软件苹果系统加密Mac文档加密软件
  8. 天钰原装FP6606ACAP6芯片,仅5V至20V VBUS电源,过电压保护
  9. Centos 7 x64 英文版安装
  10. PTA L2-048 寻宝图