一、时间频度

时间频度:一个算法花费的时间与算法中语句的执行次数成正比例,那个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度

举例:

这里就只执行了一次。所以下面这段代码的执行时间要比上面的短很多。

二、时间复杂度

(1)一般情况下,算法的基本操作语句的重复执行次数是问题规模n的某个函数,用T(n)表示,若某个辅助函数f(n),使得当n趋近与无穷大时,T(n)/f(n)的极值为不等于零的常数,则称f(n)是T(n)的同数量级函数。
记做T(n)=o(f(n)),故O(f(n))为算法的渐进时间复杂度,简称时间复杂度。

(2)T(n)不同,但是时间复杂度可能相同,如T(n)=5n²+7n+5 与 T(n)=9n²+2n+1 时间复杂度都是O(n²)

(3)时间复杂度的计算方法 例如上面的:T(n)=5n²+7n+5 直接忽略常数项,一次项,以及最高次项的系数。

常见的时间复杂度

1、常数阶O(1)
2、对数阶O(log2^n)
3、线性阶O(n)
4、线性对数阶O(nlog2^n)
5、平方阶O(n^2)
6、立方阶O(n^3)
7、k次方阶O(n^k)
8、指数阶O(2^n)

常见时间复杂度对应图

常见的算法时间度由小到大排序: O(1)<O(log2^n) <O(n) <O(nlog2^n) <O(n2)<O(n3)
<O(n^k) <O(2^n)
n越大,时间复杂度增大,算法的执行效率越低

举例:
常数阶O(1)

无论这段执行了多少行,只要他没有循环结构,那么他的时间复杂度就是常数1,即使他有几千几万行代码,他的时间复杂度还是1.

对数阶O(log2^n)

在while循环里面,每次都将i乘2,乘完以后,i距离n也越来越近,循环到x次后,i也就大于2了,此时循环也就结束了,也就是说2的x次方等于n,那么x=log2^n
也就是当循环到log2^n次以后代码就结束了。 所以这段代码的时间复杂度为O(log2^n) ,如果i=i*3
,则对应的时间复杂度就是O(log3^n)

线性阶O(n)

再例如这段代码,for循环里面的代码会执行n遍,因此他消耗的时间是随着n的时间变化而变化的,因此这类代码的时间复杂度都可以用O(n)来表示。

线性对数阶O(nlog^n)

线性对数阶O(nlog^N)。 将时间复杂度为时间复杂度为O(log^n) 的代码循环N遍的话,那么他的时间复杂度就是n*O(log^N),
也就是O(log^N)。

平方阶O(n²)

双重for循环,那么他的时间复杂度就是O(n²) 如果将这里的n改成a,b 那么他的时间复杂度就是O(m*n)

三、空间复杂度

空间复杂度:定义为一个算法所耗费的储存空间。
空间复杂度跟算法需要占用的临时工作单元数与解决规模问题n有关,空间复杂度会随着时间复杂度的n的增大而增大,当n较大时,将占用较多的储存单元。

算法的时间复杂度和空间复杂度(java)相关推荐

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

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

  2. python排序算法的时间复杂度_Python算法的时间复杂度和空间复杂度(实例解析)

    算法复杂度分为时间复杂度和空间复杂度. 其作用: 时间复杂度是指执行算法所需要的计算工作量: 而空间复杂度是指执行这个算法所需要的内存空间. (算法的复杂性体现在运行该算法时的计算机所需资源的多少上, ...

  3. 【数据结构与算法 10】算法的时间复杂度和空间复杂度

    最近在研究数据结构与算法,在B站中找到了小甲鱼的<数据结构与算法课程>,挺有意思的! 尚硅谷Java数据结构与java算法,韩顺平数据结构与算法 对于一个算法来说,分析有两步,第一是从数学 ...

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

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

  5. 常用的排序算法的时间复杂度和空间复杂度

    常用的排序算法的时间复杂度和空间复杂度                                           1.时间复杂度 (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出 ...

  6. 关于算法的时间复杂度和空间复杂度的总结

    一.算法的概念   算法(Algorithm)是将一组输入转化为一组输出的一系列计算步骤,其中每个步骤必须能在有限时间内完成.算法是用来解决一类计算问题的,注意是一类问题,而不是一个特定的问题. 二. ...

  7. 【算法的时间复杂度和空间复杂度】-算法02

    算法的时间复杂度和空间复杂度 一个算法的好坏我们主要从"时间"和"空间" 两个维度来衡量 时间维度:是指执行当前算法所消耗的时间,我们通常用 "时间复 ...

  8. 常用的排序算法的时间复杂度和空间复杂度 .

    常用的排序算法的时间复杂度和空间复杂度 排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 O(n2) O(n2) 稳定 O(1) 快速排序 O(n2) O(n*log2n) 不稳定 ...

  9. 各种常用排序算法的时间复杂度和空间复杂度

    https://blog.csdn.net/jiajing_guo/article/details/69388331 一.常用排序算法的时间复杂度和空间复杂度表格 二.特点 1.归并排序: (1)n大 ...

  10. 【计算机基础】 经常使用的排序算法的时间复杂度和空间复杂度

    经常使用的排序算法的时间复杂度和空间复杂度 排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 O(n2) O(n2) 稳定 O(1) 高速排序 O(n2) O(n*log2n) 不稳 ...

最新文章

  1. Spring源码分析【7】-Spring 模板页和JSP文件的编译
  2. 如何使用 BERT 进行自然语言处理?
  3. Session与Cookie区别[1][摘]
  4. PXC管理数据库服务器(引擎)
  5. 【QM-06】Material Specification(物料说明)续
  6. boost::process::child相关的测试程序
  7. tomcat 指定的服务未安装(总结验证)
  8. 柏林纪行(中):Node.js Collaboration Summit
  9. 软件工程——进展记录
  10. 在Pandas DataFrame中重塑数据
  11. 高可用MySQL:构建健壮的数据中心
  12. Innodb 的事物隔离级别实现原理(一)
  13. dockerfile入门
  14. Audition CC 2019 for Mac中文破解版永久激活方法附破解补丁
  15. CodeVS 1359 数字计数 51nod 1042 数字0-9的数量 Pascal
  16. shiro+jwt登录认证anon配置无效
  17. spring boot 访问路径404是会转到/error路径,倒是拦截器失效
  18. 安卓libc setenv函数内存泄漏
  19. 构建之法前三章读后感—软件工程
  20. linux防火墙在哪个位置,linux防火墙设置在哪

热门文章

  1. 24. yii2 表单赋值 model-load(), model-attributes 方法
  2. 16.进程间的通信:管道
  3. 7.2.Zeng_Cache(3) --- 前端
  4. XManager连接CentOS6.5
  5. vim创建程序文件自动添加头部注释/自动文件头注释与模板定义
  6. CentOS 上MySQL报错Can't connect to local Mysql server through socket '/tmp/mysql.scok' (111)
  7. /var/run/yum.pid 已被锁定,PID 为 XXXX 的另一个程序正在运行。
  8. silverlight打开和保存文件
  9. 测试一下各浏览器对CSS3的支持
  10. 认识XinYiCMS从这里开始!