【算法学习笔记五】平摊分析
平摊分析
平摊分析是分析一个操作序列以显示每个操作的平均成本很小的任何策略,即使序列中的单个操作可能很昂贵。不同于平均案例分析:1)不涉及概率;2)保证最坏情况下各操作的平均性能。
三种常见的平摊方法:聚集方法;会计方法;势能方法。
一.聚集方法
聚集方法:先求n个操作总共花费的总和T(n),每一步操作的平摊代价T(n)/n,这个成本适用于每个操作,即使在序列中有几种类型的操作。后面两种方法可以将不同的平摊代价分配给不同的操作类型,即平摊到每一步的代价是不一样的。
栈操作
栈中有三种操作,PUSH,POP和MULTIPOP(一次性连续取出多个元素)
MULTIPOP(S,k)while not STACK-EMPTY(S) and k!=0POP(S)k <- k-1endwhile
现在对栈总共进行n步操作,但三种操作的具体步数未知,PUSH的操作时间为O(1),POP的操作时间为O(1),MULTIPOP的操作时间是根据k的具体数值不定的,此时按最坏情况考虑,则操作时间为O(n);进行n步操作,则最坏情况下的总操作代价为
【算法学习笔记五】平摊分析相关推荐
- 算法学习笔记五:最短路径
题目描述 卫斯理小说经常提及外星人,比如蓝血人. 在土星星球有很多城市,每个城市之间有一条或多条飞行通道, 但是并不是所有的路都是很安全的,每一条路有一个安全系数 s,s 是在 0和1 间的实数 (包 ...
- 算法学习笔记五 斐波那契数列
斐波那契数列 一.最基本的 所以,只要知道这个数列的前两项,就可以求出之后所有项了. 核心部分(最简单的递推方法,但是范围是n<=48,否则会超时and溢出): #include <cst ...
- 好程序员教程分析Vue学习笔记五
好程序员教程分析Vue学习笔记五,上次我们学习了Vue的组件,这次我们来学习一下路由的使用.在Vue中,所谓的路由其实跟其他的框架中的路由的概念差不多,即指跳转的路径. 注意:在Vue中,要使用路由, ...
- 基于MVS的三维重建算法学习笔记(五)— 立体匹配经典算法PatchMatch论文翻译及要点解读
基于MVS的三维重建算法学习笔记(五)- 立体匹配经典算法PatchMatch论文翻译及要点解读 声明 问题提出 问题建模 通过PatchMatch获取平面参数--Inference via Patc ...
- Java学习笔记(五):一张图总结完JVM8基础概念
Java学习笔记(五):一张图总结完JVM8基础概念 引文 最近在学习JVM的相关内容,好不容易把基础概念全部都学了一遍,却发现知识网络是零零散散的.迫不得已,只好再来一次总的归纳总结.为了更好的理解 ...
- Python最优化算法学习笔记(Gurobi)
微信公众号:数学建模与人工智能 github地址:https://github.com/QInzhengk/Math-Model-and-Machine-Learning Python最优化算法学习笔 ...
- 数据结构与算法学习笔记之 从0编号的数组
数据结构与算法学习笔记之 从0编号的数组 前言 数组看似简单,但掌握精髓的却没有多少:他既是编程语言中的数据类型,又是最基础的数据结构: 一个小问题: 为什么数据要从0开始编号,而不是 从1开始呢? ...
- 吴恩达《机器学习》学习笔记五——逻辑回归
吴恩达<机器学习>学习笔记五--逻辑回归 一. 分类(classification) 1.定义 2.阈值 二. 逻辑(logistic)回归假设函数 1.假设的表达式 2.假设表达式的意义 ...
- 【AngularJs学习笔记五】AngularJS从构建项目开始
为什么80%的码农都做不了架构师?>>> #0 系列目录# AngularJs学习笔记 [AngularJs学习笔记一]Bower解决js的依赖管理 [AngularJs学习笔 ...
最新文章
- html标签一对一绑定的组件,一种原生组件替换HTML标签的轻量级方法尝试
- 转 Intellij中的常用快捷键
- Windows常见宏的使用
- android微信动画制作,动画制作轻量级SDK:PAG六大优势助力开发
- 从零开始,手把手教会你5分钟用SPARK对PM2.5数据进行分析(包括环境准备和SPARK代码)...
- 数据库连接和异常处理的几种常用方法
- 深入分布式缓存之EVCache探秘开局篇(文末赠书)
- 电子计算机应由,计算机
- JavaScript 'Pig latin is cool'=='igPay atinlay siay oolcay'
- TableViewCell,TableView,UITableViewCell
- 图解Windows下QT编程入门
- 计算机组成原理课后答案(唐朔飞第三版) 第四章
- Flask接口开发教程
- 接口自动化-get/post接口详解
- .orig 等冲突文件的来源
- VSCode Remote 报错,无法连接??别慌,小二来了!
- 富士通打印机调整位置_针式打印机怎么设置打印的位置?
- GPT-3 离通用人工智能有多近?
- Office Word中由于自定义了新的样式名称,而导致题注显示:错误!文档中没有指定的样式文字
- 如何利用ewomail搭建邮件服务器