先说结论
最好是O(1),最差是O(n), 均摊是O(1)。
最好的情况,就是插入的时候,还有空余;最坏的情况,就是每次插入都满了,要重新分配内存。
均摊复杂度,先看一下定义
对一个数据结构进行一组连续操作中,大部分情况下时间复杂度都很低,只有个别情况下时
间复杂度比较高,而且这些操作之间存在前后连贯的时序关系,这个时候,我们就可以将这
一组操作放在一块儿分析,看是否能将较高时间复杂度那次操作的耗时,平摊到其他那些时
间复杂度比较低的操作上。
推导


这里就是按照定义,对插入九个数的过程进行了分析,其中当插入的空间不够时,会重新分配两倍的大小内存,详细解释,查看参考博客。
其中,不等号是进行了缩放,假设全部数量为1,然后有logn次的重新分配内存。
对等比数列求和使用了公式,


本文分析了一种数据结构在连续操作中的时间复杂度变化,特别是插入操作时从最好O(1)到最坏O(n)的变化,并通过实例推导出均摊复杂度为O(1)。讨论了在内存不足时重新分配内存对复杂度的影响。
413

被折叠的 条评论
为什么被折叠?



