定义

第\(x\)次操作后,势能为\(\phi(x)\),该操作实际复杂度\(c(x)\),均摊复杂度\(a(x)\)。

定义\(a(x)=c(x)+\phi(x)-\phi(x-1)\)。

那么总复杂度为$\phi(n)-\phi(0)+\sum c(x) $。

简单应用

Q:对于一个初始为0的二进制数,每次+1,求n次操作复杂度。

A:定义\(\phi(x)\)为\(i\)次操作后1的个数,对于一次+1 ,1个0->1,x个1->0,那么\(a(x)= (1+x) + (1-x)=2\),则总复杂度\(o(n)\),常数2。

splay分析

定义x节点的势能为\(\chi(x)=log(size(x))\)(size表示子树大小)。

那么\(\phi(n)-\phi(0) \leq n log(n)\)。

双旋分三种情况(y=fa[x],z=fa[y]):

  1. y为根
  2. x,y,z同一条直线
  3. x,y,z不为同一条直线

(弄错了不想改...祖孙关系以图为准)

对于1:

\[c(x)=1+ \chi(x^{'})+\chi(y^{'})-\chi(x)-\chi(y)=1+\chi(y^{'})-\chi(y)
\]

对于2:

\[c(x)=2+\chi(x^{'})+\chi(y^{'})+\chi(z^{'})-\chi(x)-\chi(y)-\chi(z)
\]
\[c(x)=2+\chi(x^{'})+\chi(y^{'})-\chi(y)-\chi(z) \leq 2+\chi(z^{'})+\chi(x^{'})-2\chi(z)
\]

\[\chi(x^{'})+\chi(z)-2\chi(z^{'})=log({(size(2+1)+1)\times(size(3+4)+1)\over {(3+size(3+4+2+1))}^2}) \leq log( {1 \over 4})=-2
\]

那么

\(c(x)\leq 2+\chi(z^{'})+\chi(x^{'})-2\chi(z) \leq 3(\chi(z^{'})-\chi(z))\)

对于3:

\[c(x)=2+\chi(x^{'})+\chi(y^{'})+\chi(z^{'})-\chi(x)-\chi(y)-\chi(z)
\]
\[c(x)=2+\chi(x^{'})+\chi(y^{'})-\chi(y)-\chi(z) \leq 2+\chi(x^{'})+\chi(y^{'})-2\chi(z)
\]

\[2\chi(z^{'})-\chi(x^{'})-\chi(y^{'})=log({(size(1+3+4+2)+3)^2 \over{(size(1+3)+1) \times (size(4+2)+1)}}) \geq 2
\]

\[c(x) \leq 2(\chi(z^{'})-\chi(z))
\]

综上

可以把\((\chi(z^{'})-\chi(z))\)的常数都看为3。

一次splay复杂度为\(3 (\chi(root)-\chi(z))+1 \leq 3 log(n)+1\)。

然后这个还要乘上rotate的常数。

不过在实际应用下,可以认为常数为8。

势能分析(splay分析)的更多相关文章

  1. x264源代码 概述 框架分析 架构分析

    函数背景色 函数在图中以方框的形式表现出来.不同的背景色标志了该函数不同的作用: 白色背景的函数:不加区分的普通内部函数. 浅红背景的函数:libx264类库的接口函数(API). 粉红色背景函数:滤 ...

  2. 转:[gevent源码分析] 深度分析gevent运行流程

    [gevent源码分析] 深度分析gevent运行流程 http://blog.csdn.net/yueguanghaidao/article/details/24281751 一直对gevent运行 ...

  3. Qt Creator Valgrind内存分析前端(分析Nginx内存)

    Linux上使用Qt Creator进行C/C++开发http://my.oschina.net/eechen/blog/166969Qt Creator GDB调试前端(调试Nginx):http: ...

  4. Python之路,Day22 - 网站用户访问质量分析监测分析项目开发

    Python之路,Day22 - 网站用户访问质量分析监测分析项目开发   做此项目前请先阅读 http://3060674.blog.51cto.com/3050674/1439129  项目实战之 ...

  5. MapReduce源代码分析MapTask分析

    前言 MapReduce该分析是基于源代码Hadoop1.2.1代码分析进行的基础上. 该章节会分析在MapTask端的详细处理流程以及MapOutputCollector是怎样处理map之后的col ...

  6. ChIP-seq 核心分析 下游分析

    http://icb.med.cornell.edu/wiki/index.php/Elementolab/ChIPseeqer_Tutorial [怪毛匠子 整理] ChIP-seq[核心分析 下游 ...

  7. Hadoop项目实战-用户行为分析之分析与设计

    1.概述 本课程的视频教程地址:<用户行为分析之分析与设计> 下面开始本教程的学习,本教程以用户行为分析案例为基础,带着大家对项目的各个指标做详细的分析,对项目的整体设计做合理的规划,让大 ...

  8. 20145307陈俊达_安卓逆向分析_APKtools分析smail

    20145307陈俊达_安卓逆向分析_APKtools分析smail 引言 真刺激呢!到了第二篇博客了,难度开始加大,之前是简单的dex2jar和有图形界面的jd-gui,现在来隆重介绍强大的反汇编工 ...

  9. linux服务器宕机分析/性能瓶颈分析

    linux服务器宕机分析/性能瓶颈分析   服务器宕机原因很多,资源不足.应用.硬件.系统内核bug等,以下一个小例子 服务器宕机了,首先得知道服务器宕机的时间点,然后分析日志查找原因 1.last ...

随机推荐

  1. 难搞的偏向锁终于被 Java 移除了

    背景 在 JDK1.5 之前,面对 Java 并发问题, synchronized 是一招鲜的解决方案: 普通同步方法,锁上当前实例对象 静态同步方法,锁上当前类 Class 对象 同步块,锁上括号里 ...

  2. (原创)WinForm中莫名其妙的小BUG——RichTextBox自动选择字词问题

    一.前言 使用WinForm很久了,多多少少会遇到一些小BUG. 这些小BUG影响并不严重,而且稍微设置一下就能正常使用,而且微软一直也没有修复这些小BUG. 写本系列文章,是为了记录一下这些无伤大雅 ...

  3. Interval Bound Propagation (IBP)

    目录 概 主要内容 IBP CROWN CROWN-IBP 训练的技巧 写在最后 代码 Gowal S., Dvijotham K., Stanforth R., Bunel R., Qin C., ...

  4. Java Web程序设计笔记 • 【第10章 JSTL标签库】

    全部章节   >>>> 本章目录 10.1 JSTL 概述 10.1.1 JSTL 简介 10.1.1 JSTL 使用 10.1.2 实践练习 10.2 核心标签库 10.2. ...

  5. Java初学者作业——实现控制台的猜数字游戏。游戏运行时产生一个1~100之间的随机数字

    返回本章节 返回作业目录 需求说明: (1)实现控制台的猜数字游戏.游戏运行时产生一个1-100之间的随机数字 (2)要求用户从控制台输入数字,若输入的数字比随机数小,则输出"太小了,再大一 ...

  6. Java高级程序设计笔记 • 【第1章 IO流】

    全部章节   >>>> 本章目录 1.1 File类访问文件 1.1.1 File 类 1.1.2 File 类方法 1.1.3 实践练习 1.2 文件过滤器 1.2.1 Fi ...

  7. 安装rebar3

    下载编译好的版本 wget https://s3.amazonaws.com/rebar3/rebar3 chmod +x /home/hylink/rebar3 (赋权) ./rebar3 loca ...

  8. Hadoop开启Kerberos安全模式

    Hadoop开启Kerberos安全模式, 基于已经安装好的Hadoop的2.7.1环境, 在此基础上开启Kerberos安全模式. 1.安装规划 已经安装好Hadoop的环境 10.43.159.7 ...

  9. 基于GO语言实现的支持高并发订单号生成函数

    1.固定24位长度订单号,毫秒+进程id+序号. 2.同一毫秒内只要不超过一万次并发,则订单号不会重复. github地址:https://github.com/w3liu/go-common/blo ...

  10. CSS基础 装饰 元素本身隐藏和显示效果及案例

    1.visibility:hidden; 2.display: none: 区别: 1.visibility:hidden 隐藏元素本身,且在网页中 占位置 2.display:none; 隐藏元素本 ...