zoukankan      html  css  js  c++  java
  • 算法笔记(二)——浅析最好、最坏、平均、均摊时间分析方法

    为了使时间复杂度评价方法在不同量级情况下,评价更为全面、更精确,于是又可分为以下四种评价方法:

    (一)最好情况时间复杂度:

    即一个程序在最好情况下的时间复杂度,比如,找一个数组中的元素,第一次就找到元素的情况。

    (二)最坏情况时间复杂度

    即一个程序在最坏情况下的时间复杂度,比如,找一个数组中的元素,最后一次就找到元素的情况。

    (三)平均情况时间复杂度

    平均情况时间复杂度=(累加每个元素的时间复杂度+没有该元素的复杂度)/所有元素个数。

    如果再引入概率论的评价方法的话,即找到与未找到的概率个0.5,再将能够找到元素的概率平均分给每个元素,最后=(累加每个元素的时间复杂度*概率+未找到*1/2)/元素个数。

    (四)均摊情况时间复杂度

    引入均摊分析方法——摊还分析法(也称“平摊分析法”),就比如,若每执行n-1次的复杂度为Q(1),执行第n次的复杂度为O(n)。例如:对一个数组进行插值,若数组满了就清空再插值的操作。

    这种情况下,将第n次的O(n)摊还给前(n-1)次,那么每个元素的复杂度就为O(1)了。这是一种特殊的平均情况时间复杂度分析,使用场景较为特殊,一般也就适用于大多数情况下时间复杂度较低,只有个别时间复杂度较高的情况。

  • 相关阅读:
    Wireshark——工具
    Wireshark——网络协议
    Wireshark——过滤器
    Wireshark——数据包、着色规则和提示
    Floyd最小环
    有向环覆盖问题
    KM算法
    归并排序
    树状数组
    构造强连通图
  • 原文地址:https://www.cnblogs.com/somedayLi/p/9729131.html
Copyright © 2011-2022 走看看