• 《数据结构与算法之美》笔记 04 | 复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度


    上一节讲了时间复杂度和空间复杂度,以及常用的时间复杂度分析方法。这一节更深入的介绍了几种复杂度概念,在不同情况下的复杂度
    最好情况时间复杂度(best case time complexity)、最坏情况时间复杂度(worst case time complexity)、平均情况时间复杂度(average case time complexity)、均摊时间复杂度(amortized time complexity)。
    平均时间复杂度的全称应该叫加权平均时间复杂度或者期望时间复杂度。

    平均复杂度分析方法:找出所有的输入情况及相应的发生概率,然后再计算加权平均值。

    摊还分析(或者叫平摊分析):每一次 O(n) 的插入操作,都会跟着 n-1 次 O(1) 的插入操作,所以把耗时多的那次操作均摊到接下来的 n-1 次耗时少的操作上,均摊下来,这一组连续的操作的均摊时间复杂度就是 O(1)。
    通过摊还分析得到的时间复杂度我们起了一个名字,叫均摊时间复杂度。
    对一个数据结构进行一组连续操作中,大部分情况下时间复杂度都很低,只有个别情况下时间复杂度比较高,而且这些操作之间存在前后连贯的时序关系,这个时候,我们就可以将这一组操作放在一块儿分析,看是否能将较高时间复杂度那次操作的耗时,平摊到其他那些时间复杂度比较低的操作上。而且,在能够应用均摊时间复杂度分析的场合,一般均摊时间复杂度就等于最好情况时间复杂度。均摊时间复杂度就是一种特殊的平均时间复杂度

  • 相关阅读:
    NodeJs 多核多进程并行框架实作 CNode
    Introduction to XCache ¶
    整理了一些常用的ContentType
    Node 下 Http Streaming 的跨浏览器实现
    libev 设计分析
    master + worker模式的node多核解决框架——nodecluster
    HTTP/1.1: Header Field Definitions
    HTTP/1.1 XCache header field
    XCache and XCacheLookup headers explained
    今天看了一些nodejs的文章,抱欠我又肤欠了。。。
  • 原文地址:https://www.cnblogs.com/1million/p/13443670.html
Copyright © 2020-2023  润新知