Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >算法 - 时间复杂度

算法 - 时间复杂度

作者头像
颇忒脱
发布于 2019-03-13 08:29:46
发布于 2019-03-13 08:29:46
71400
代码可运行
举报
运行总次数:0
代码可运行

注:本文仅为笔记

原文

极客时间 - 数据结构与算法之美 - 03 | 复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?

unit_time

读、运算、写均算作一个unit_time

计算技巧

  1. 只关注循环执行次数最多的一段代码。
  2. 加法法则:总复杂度等于量级最大的那段代码的复杂度。
  3. 乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积。

复杂度量级

  • 常数阶 O(1)
  • 线性阶 O(n)
  • 对数阶 O(logn)
  • 线性对数阶 O(nLogn)
  • 平方阶 O(n^2)、立方阶 O(n^3)、k次方阶 O(n^k)
  • 指数阶 O(2^n)
  • 阶乘阶 O(n!)

举例:

O(1)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int i = 8;
int j = 6;
int sum = i + j;

O(n)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
i=1;
while (i <= n)  {
  i = i * 2;
}

O(m + n)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int cal(int m, int n) {
  int sum_1 = 0;
  int i = 1;
  for (; i < m; ++i) {
    sum_1 = sum_1 + i;
  }

  int sum_2 = 0;
  int j = 1;
  for (; j < n; ++j) {
    sum_2 = sum_2 + j;
  }

  return sum_1 + sum_2;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2.时间复杂度与空间复杂度
前面我们说了算法的重要性数据结构与算法开篇,今天我们就开始学习如何分析、统计算法的执行效率和资源消耗呢?请看本文一一道来。
码哥字节
2020/03/24
7090
2.时间复杂度与空间复杂度
算法复杂度
把代码跑一遍,通过统计、监控,就能得到算法执行的时间和占用内存大小,有很大局限性:
Dlimeng
2023/06/30
1780
算法复杂度
复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?
总的执行时间就是T(n) = (2n+2)*unit_time。 记为:T(n) = O(n);
Jingbin
2019/04/09
9390
复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?
来来来,让咱重新认识一下算法的复杂度!
大家好,我是多选参数的程序锅,一个正在“研究”操作系统(主要是容器这块)、学数据结构和算法以及 Java 的硬核菜鸡。今天这篇主要是讲算法的时间、空间复杂度,参考来源主要是王争老师的专栏《数据结构与算法之美》以及程序锅去年上课时老师的课件。
syy
2020/10/27
4530
来来来,让咱重新认识一下算法的复杂度!
数据结构与算法之美 - 时间和空间复杂度
1.数据结构和算法解决是 “如何让计算机更快时间、更省空间的解决问题”。2.因此需从执行时间和占用空间两个维度来评估数据结构和算法的性能。3.分别用时间复杂度和空间复杂度两个概念来描述性能问题,二者统称为复杂度。4.复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系。
夜尽天明
2019/06/03
4450
算法时间复杂度分析(一)
金庸武侠中描述一种武功招式的时候,经常会用到 “快、准、狠” 这3个字眼。同样,在计算机中我们衡量一种算法的执行效率的时候也会考量3个方面:“快、省、稳”。
全栈程序员站长
2022/08/28
4960
算法时间复杂度分析(一)
简单复习下前端算法复杂度相关的知识
大 O 时间复杂度实际上并不具体表示代码真正的执行时间,而是表示代码执行时间随数据规模增长的变化趋势,所以,也叫作渐进时间复杂度(asymptotic time complexity),简称时间复杂度。
前端达人
2021/09/08
3290
数据结构与算法 --- 复杂度分析专题(一)
算法复杂度分析的意义在于评估算法的执行效率,找出最优解决方案,是优化算法和改进程序性能的基础。通过对算法的时间复杂度和空间复杂度进行分析,可以帮助我们预估该算法运行所需的资源,从而提高程序的性能。
Niuery Diary
2023/10/22
3650
数据结构与算法 --- 复杂度分析专题(一)
重学数据结构和算法(一)之复杂度、数组、链表、栈、队列、图
最近学习了极客时间的《数据结构与算法之美]》很有收获,记录总结一下。 欢迎学习老师的专栏:数据结构与算法之美 代码地址:https://github.com/peiniwan/Arithmetic
六月的雨
2021/03/02
5900
重学数据结构和算法(一)之复杂度、数组、链表、栈、队列、图
搞编程,你必知必会的复杂度分析
在开发中,我们会经常听到关于时间复杂度、空间复杂度相关词汇,如果你没有这方面的知识,你肯定会一脸懵逼。那什么是时间复杂度、空间复杂度还有我们又怎么去分析?首先我们先来弄清楚我们为什么需要做复杂度分析。
平头哥的技术博文
2019/09/03
4320
算法之旅:复杂度分析
作为一个合格的技术人员,算法是必备知识。可以这么说,虽然不懂算法的人并不会失业,但如果你想快速晋升摆脱业务工程师CRUD的命运就一定离不开算法。同时不管是对于工作还是面试都是非常有用的。
Rouse
2020/12/14
3590
算法之旅:复杂度分析
算法(一)时间复杂度
前言 算法很重要,但是一般情况下做移动开发并不经常用到,所以很多同学早就将算法打了个大礼包送还给了老师了,况且很多同学并没有学习过算法。这个系列就让对算法头疼的同学能快速的掌握基本的算法。过年放假阶段玩了会游戏NBA2K17的生涯模式,没有比赛的日子也都是训练,而且这些训练都是自发的,没有人逼你,从早上练到晚上,属性也不涨,但是如果日积月累,不训练和训练的人的属性值就会产生较大差距。这个突然让我意识到了现实世界,要想成为一个球星(技术大牛)那就需要日积月累的刻意训练,索性放下游戏,接着写文章吧。 1.算法的
用户1269200
2018/02/01
8530
算法(一)时间复杂度
数据结构与算法学习笔记
本文是王争老师的《算法与数据结构之美》的学习笔记,详细内容请看王争的专栏 。有不懂的地方指出来,我做修改。
全栈程序员站长
2022/07/23
6990
数据结构与算法学习笔记
算法复杂度分析
最好情况时间复杂度就是在程序最理想的状态下,数组第一个元素就是我们要查找的元素,只需要查找一次;而最坏情况时间复杂度就是在程序最糟糕的状态下,数组最后一个元素才是我们要查找的元素,需要查找完整个数组;
奈何缘浅wyj
2021/03/03
5760
算法复杂度分析
看动画轻松理解时间复杂度(一)
算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,比如排序就有前面的十大经典排序和几种奇葩排序,虽然结果相同,但在过程中消耗的资源和时间却会有很大的区别,比如快速排序与猴子排序:)。
五分钟学算法
2018/12/25
5690
算法的时间复杂度
作为一个非典型的前端开发人员,我们要懂得一些算法的概念,并将其理论知识引入日常的开发中,提高日常的开发效率和提升产品的体验。
Jimmy_is_jimmy
2019/07/31
1.3K0
算法基础之复杂度表示
今天聊聊算法,算法作为开发过程中重要的一份子,是我们编码的基础,遇到问题如果没有好的算法解决,程序也就没有好的性能可言了。所以好的算法,能让代码更省时间和空间,那怎么去计算算法所占用的时间和空间呢?这也就是我们今天要重点说的东西了——空间复杂度和时间复杂度。
码上积木
2021/01/11
5490
时间复杂度与空间复杂度
在计算机程序编写前,依据统计方法对算法进行估算,经过总结,我们发现一个高级语言编写的程序程序在计算机上运行所消耗的时间取决于下列因素:
Rochester
2020/09/01
6260
解惑3:时间频度,算法时间复杂度[通俗易懂]
要理解时间复杂度,需要先理解时间频度,而时间频度简单的说,就是算法中语句的执行次数。
全栈程序员站长
2022/09/23
8200
解惑3:时间频度,算法时间复杂度[通俗易懂]
时间复杂度与空间复杂度
算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢?
LittlePanger
2020/04/14
9110
相关推荐
2.时间复杂度与空间复杂度
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验