算法笔记(二)——浅析最好、最坏、平均、均摊时间分析方法

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

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

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

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

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

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

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

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

 

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

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

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

 

posted @ 2018-09-30 13:05  Someday&Li  阅读(914)  评论(0编辑  收藏  举报