引入 在某一类算法流程当中,中间流程十分复杂难以直接分析复杂度。 为了解决这类问题的复杂度分析,我们引入物理中能量守恒的思想来解决此问题。 其本质在于将复杂度刻画为做功引起势能变化,而由能量的特性只用管始末状态而不需要管中间的做工情况,恰好能解决开始所提到的中间流程复杂的问题。 一般 ...
定义 第 x 次操作后,势能为 phi x ,该操作实际复杂度 c x ,均摊复杂度 a x 。 定义 a x c x phi x phi x 。 那么总复杂度为 phi n phi sum c x 。 简单应用 Q:对于一个初始为 的二进制数,每次 ,求n次操作复杂度。 A:定义 phi x 为 i 次操作后 的个数,对于一次 , 个 gt ,x个 gt ,那么 a x x x ,则总复杂度 o ...
2019-05-26 16:02 0 577 推荐指数:
引入 在某一类算法流程当中,中间流程十分复杂难以直接分析复杂度。 为了解决这类问题的复杂度分析,我们引入物理中能量守恒的思想来解决此问题。 其本质在于将复杂度刻画为做功引起势能变化,而由能量的特性只用管始末状态而不需要管中间的做工情况,恰好能解决开始所提到的中间流程复杂的问题。 一般 ...
概述 大致思想 势能法摊借用了物理学中的概念,还分析将数据结构中的预付代价表示为“势能”,将积攒的势能释放可以支付未来操作的代价,将势能与整个数据结构相关联。 定义 对于一个初始数据结构 \(D_0\),我们将执行 \(n\) 个操作,\(\forall i\in[1,n]\),定义 ...
简述 Splay树是一种二叉查找平衡树,其又名伸展树,缘由是对其进行任意操作,树的内部结构都会发生类似伸张的动作,换言之,其读和写操作都会修改树的结构。Splay树拥有和其它二叉查找平衡树一致的读写时间复杂度O(log2(n))。Splay树的优点是实现简单(苦于红黑树的小伙伴 ...
\(Splay\)的复杂度分析 不论插入,删除还是访问,我们可以发现它们的复杂度都和\(splay\)操作的复杂度同阶,只是一点常数的区别 我们不妨假设有\(n\)个点的\(splay\),进行了\(m\)次\(splay\)操作 采用势能分析 我们记\(w(x) = \left ...
基本概念 \(Splay\) 是一种 平衡树 ,由 \(Daniel \ Sleator\) 和 \(Robert \ Tarjan\) 提出。它可以维护普通的二叉搜索树所支持的操作,也可以作为 \(LCT\) 的辅助树,进行很多复杂的操作。\(Splay\) 是两种最常用的平衡树 ...
...
Splay入门 目录 Splay入门 BST与Splay Rotate Splay 查找操作 插入 Update 前驱/后驱 前驱 后驱 删除 ...
前言 在上一节中,我们讲述了Splay的核心操作rotate与splay 本节我会教大家如何用这两个函数实现各种强大的功能 为了方便讲解,我们拿这道题做例题来慢慢分析 利用splay实现各种功能 首先,我们需要定义一些东西 各种指针 rotate splay 这两个函数就不 ...