算法复杂度分析

1.时间复杂度:

什么是Big O:O(f(n))表示运行算法所需要执行的指令数,和f(n)成正比。n表示数据规模

例:

随着输入规模n的增大,时间复杂度的增长模式

2.数据规模概念:

该时间针对的是简单的求和运算,针对算法在该基础上大约除10即可

3.空间复杂度:

递归的深度是多少,空间复杂度就是多少

4.常见的复杂度分析

O(1)

O(n):一般存在一个for循环且与n有关

O(n^2):一般是双重循环且都与n有关,注意增量

O(logn):

二分查找法:

整形转成字符串:

其他:

O(nlogn):虽然是双循环,但是外循环增量是logn级别

O(sqrt(n)):

5.递归算法的复杂度分析

不是有递归的函数就一定是O(nlogn)

如果递归函数中,

只进行一次递归调用,递归深度为depth,在每个递归函数中,时间复杂度为T,则总体时间复杂度为O(T*depth)

进行多次递归调用,建立一棵递归树

该函数的递归,在n=3时,有1次f(3),有2次f(2)递归,4次f(1)递归,8次f(0)递归,调用次数就是递归树的节点数(即调用深度)

归并排序算法属于分而治之,其两次递归,排序时间复杂度是logn级别,每一层递归其节点总数n=8没有改变,所以其时间复杂度是nlogn

6.均摊复杂度分析(动态数组、动态栈、动态队列)

动态数组:每一次push耗费O(1),当达到容量n时,resize数组(扩充或缩减)容量耗费O(n),这些n+1次操作耗费O(2n)的时间,均摊下来就是O(2)即O(1)级别。缩减时为了避免复杂度震荡(在数组元素个数为n时,重复着添加元素删除元素,反复扩充或缩减,使复杂度变为O(n)),因此需要当元素个数缩减至1/4时才resize,给添加元素留出余地

(0)

相关推荐

  • 程序员的数学基础课:编程中的数学思维

    本文将从编程的角度出发,重新梳理这些内容,作为第一篇"基础思想"的总结. 5.1 数据结构.编程语言和基础算法 这一节我们汇总数学在常见的数据结构.编程语言和基础算法中的体现,让你 ...

  • 时间复杂度和空间复杂度,一看就懂,面试前必过一遍

    一.定义 时间和空间是程序的一个硬性指标,一个用来衡量 代码执行的速度 ,一个用来衡量 存储空间的大小 程序 =  数据结构 + 算法 时间复杂度:就是执行程序的快慢,速度越快,时间复杂度就越好. 空 ...

  • 复杂度分析和大O表示法

    学习数据结构和算法要从复杂度分析说起.表示时间的大O符号,是用来描述算法效率的语言和度量单位.算法复杂度包括时间复杂度和空间复杂度,两者中又以时间复杂度相对重要,因为就 Web 应用而言,我们常见的性 ...

  • 关于时间复杂度,你不知道的都在这里

    相信每一位录友都接触过时间复杂度,「代码随想录」已经也讲了上百道经典题目了,是时候对时间复杂度来一个深度的剖析了,很早之前就写过一篇,当时文章还没有人看,Carl感觉有价值的东西值得让更多的人看到,哈 ...

  • 七大经典、常用排序算法的原理、Java 实现以及算法分析

    0. 前言 大家好,我是多选参数的程序锅,一个正在 neng 操作系统.学数据结构和算法以及 Java 的硬核菜鸡.数据结构和算法是我准备新开的坑,主要是因为自己在这块确实很弱,需要大补(残废了一般) ...

  • 如何进行算法的复杂度分析?

    前言 本篇文章收录于专辑:http://dwz.win/HjK 你好,我是彤哥,一个每天爬二十六层楼还不忘读源码的硬核男人. 大家都知道,数据结构与算法解决的主要问题就是"快"和& ...

  • 峰瑞资本覃超:用算法复杂度来分析你的商业模式[2017GTLC访谈系列]

    从程序员到创业者,需要经历哪些转变?又需要点亮哪些技能?GTLC约访了峰瑞资本技术合伙人覃超,听他聊聊从Facebook到峰瑞资本,这一路走来所收获的经验与感触. 采访|陈园园 排版|赵新龙  我现在 ...

  • 综述 | npj Biofilms and Microbiomes:微生物成分分析:标准化和差异丰度分析

    编译:独世,编辑:小菌菌.江舜尧. 原创微文,欢迎转发转载. 导读 越来越多研究表明微生物组与多种人类疾病之间存在一定的关联,例如肥胖.炎症性肠病.HIV等.进行微生物组广泛关联研究的第一步是在不同条 ...

  • 在外地上学回北京高考难易度分析

    北京高考的考题思路相较于外地有许多不同,但不能说北京高考就比外地容易.事实上,北京只是升学率更高,因为本地大学会赋予本地考生更多名额.建议回京高考要选择一所认真,负责的学校,这样才能令考生更快适应北京 ...

  • 王希常 等:新高考等级分数转换模型及算法实现策略分析

    原文刊载于<中国考试>2021年第6期第56-60页. 作者 王希常,山东省教育招生考试院研究员: 张敏强,华南师范大学教授,博士生导师: 吕冰彩,山东省教育招生考试院助理研究员. 摘要 ...

  • 复杂度分析的套路及常见的复杂度

    前言 本篇文章收录于专辑:http://dwz.win/HjK,点击解锁更多数据结构与算法的知识. 你好,我是彤哥,一个每天爬二十六层楼还不忘读源码的硬核男人. 上一节,我们一起学习了表示复杂度的几个 ...

  • 递归算法复杂度Ω分析-分享

    递归算法复杂度Ω分析-分享

  • 深度学习模型复杂度分析

    Transformer self-attention和position-wise FFN作为Transformer比较特殊的模块,这里只分析一下它们的复杂度,注意:这里的复杂度既包含时间,也包含空间. ...