- Python 数据结构与算法教程
- Python - 数据结构首页
- Python - 数据结构简介
- Python - 数据结构环境
- Python - 数组
- Python - 列表
- Python - 元组
- Python - 字典
- Python - 二维数组
- Python - 矩阵
- Python - 集合
- Python - 映射
- Python - 链表
- Python - 栈
- Python - 队列
- Python - 双端队列
- Python - 高级链表
- Python - 哈希表
- Python - 二叉树
- Python - 搜索树
- Python - 堆
- Python - 图
- Python - 算法设计
- Python - 分治法
- Python - 递归
- Python - 回溯法
- Python - 排序算法
- Python - 搜索算法
- Python - 图算法
- Python - 算法分析
- Python - 大O表示法
- Python - 算法类别
- Python - 均摊分析
- Python - 算法论证
- Python 数据结构与算法有用资源
- Python - 快速指南
- Python - 有用资源
- Python - 讨论
Python - 均摊分析
均摊分析涉及估计程序中一系列操作的运行时间,而不考虑输入值中数据分布的范围。一个简单的例子是在排序列表中查找值比在未排序列表中查找值更快。
如果列表已经排序,那么数据分布如何并不重要。但当然,列表的长度会产生影响,因为它决定了算法必须经历的步骤数量才能获得最终结果。
因此,我们看到,如果获得排序列表的单个步骤的初始成本很高,那么随后查找元素的步骤的成本就会大大降低。因此,均摊分析帮助我们找到一系列操作的最坏情况运行时间的界限。均摊分析有三种方法。
记账方法 - 这涉及为执行的每个操作分配一个成本。如果实际操作比分配的时间更快完成,则在分析中会累积一些正信用额度。
势能方法 - 在这种方法中,保存的信用额度被用作数据结构状态的数学函数,用于未来的操作。数学函数的评估和均摊成本应该相等。因此,当实际成本大于均摊成本时,势能会下降,并将其用于未来的昂贵操作。
聚合分析 - 在这种方法中,我们估计 n 步总成本的上限。均摊成本是总成本与步数 (n) 的简单除法。。
在相反的情况下,它将是负信用额度。为了跟踪这些累积的信用额度,我们使用栈或树数据结构。早期执行的操作(如排序列表)具有较高的均摊成本,但顺序较晚的操作具有较低的均摊成本,因为利用了累积的信用额度。因此,均摊成本是实际成本的上限。
广告