美文网首页
01.复杂度分析

01.复杂度分析

作者: 学海一乌鸦 | 来源:发表于2020-05-10 21:16 被阅读0次

1.why

数据结构与算法本质是"快"与“省”,即运行更快,存储空间更省。

2.What

时间复杂度


image.png

n:表示数据规模

T(n):代码的执行时间;

f(n):每行代码执行的次数总和;

O:表示代码的执行时间 T(n) 与 f(n) 表达式成正比。

大O时间复杂度表示法:并不具体表示代码真正执行的时间,而是表示代码执行时间随数据规模增长的变化趋势;


空间复杂度

表示数据规模的增长与存储空间的关系,常见的有O(1),O(n),O(n2)

3.How

时间复杂度分析

  • 只关注循环执行次数最多的代码;
  • 加法原则:总复杂度等于量级最高的那段代码的复杂度;
  • 乘法原则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积;

时间复杂度实例:

image.png

复杂度量级分为多项式量级非多项式量级。

非多项式量级为指数阶阶乘阶,复杂度会随着数据规模的增加而急剧增加,一般不考虑

image.png

时间复杂度细分:

  • 最好情况时间复杂度
  • 最坏情况时间复杂度
  • 平均情况时间复杂度,又称加权平均时间复杂度或者期望时间复杂度
  • 均摊时间复杂度,看是否能将较高时间复杂度那次操作的耗时,平摊到其他那些时间复杂度比较低的操作上。而且,在能够应用均摊时间复杂度分析的场合,一般均摊时间复杂度就等于最好情况时间复杂度。

相关文章

  • 01.复杂度分析

    1.why 数据结构与算法本质是"快"与“省”,即运行更快,存储空间更省。 2.What 时间复杂度 n:表示数据...

  • map:169.求众数(投票算法)

    求众数 哈希Map 复杂度分析 时间复杂度:O(N) 空间复杂度: O(N) 投票算法 复杂度分析

  • 复杂度分析

    为什么需要复杂度分析? 大O复杂度表示法 时间复杂度分析 常见复杂度量级 复杂度量级简单说明 空间复杂度 时间复杂...

  • 针对封装数组的简单复杂度分析

    完成了数组的封装之后我们还需对其进行复杂度分析:此处的复杂度分析主要是指时间复杂度分析,算法的时间复杂度反映了程序...

  • 四、复杂度分析& 动态数组的缩容

    复杂度分析 这里分析之前实现的ArrayList和LinkedList的增删改查的复杂度。分析复杂度是要从下面三个...

  • 一个好的算法如何测评

    一个算法的好坏可以根据复杂度分析来测评. 复杂度分析包括时间复杂度和空间复杂度. 1.时间复杂度 需要考虑: 1)...

  • 数据结构与算法 复杂度分析

    复杂度:时间复杂度和空间复杂度。复杂度的分析是学习数据结构与算法的基础! 极简概述 复杂度的分析已经有很多很好...

  • 数据结构与算法学习-复杂度分析

    前言 这一篇笔记主要记录总结了什么是算法复杂度?、为什要做算法复杂度分析?、如何做算法复杂度分析?、常用的复杂度级...

  • 数据结构-复杂度分析

    为什么需要复杂度分析? 复杂度分析实在太重要了。复杂度分析是整个算法学习的精髓,只要掌握了它,数据结构和算法的内容...

  • 算法复杂度分析

    复杂度分析包括: 时间复杂度分析 空间复杂度分析 事后统计法 我们常用事后统计法来统计效率,这种方法也存在一些问题...

网友评论

      本文标题:01.复杂度分析

      本文链接:https://www.haomeiwen.com/subject/vepsnhtx.html