原文:普通平衡树学习笔记之Splay算法

前言 今天不容易有一天的自由学习时间,当然要用来 学习 。在此记录一下今天学到的最基础的平衡树。 定义 平衡树是二叉搜索树和堆合并构成的数据结构,它是一 棵空树或它的左右两个子树的高度差的绝对值不超过 ,并且左右两个子树都是一棵平衡二叉树。 这里仅仅说明一下平衡树中的 Splay 算法 进入正题 平衡树中有许多种类:红黑树 AVL 树,伸展树 Splay , Treap 等等,但是 Splay 算 ...

2020-07-10 20:37 4 381 推荐指数:

查看详情

学习笔记平衡树-splay

嗯好的今天我们来谈谈cosplay splay是一种操作,是一种调整二叉排序的操作,但是它并不会时时刻刻保持一个平衡,因为它会根据每一次操作把需要操作的点旋转到根节点上 所谓二叉排序,就是满足对中的任意一个节点,它左子树上的任意一个值比它的值小,右子树上的任意一个值比它的值大的一棵二叉树 ...

Mon Jul 23 02:08:00 CST 2018 5 3360
平衡树splay讲解

  首先来说是splay是二叉搜索,它可以说是线段和SBT的综合,更可以解决一些二者解决不了的问题,splay几乎所有的操作都是由splay这一操作完成的,在介绍这一操作前我们先介绍几个概念和定义   二叉搜索,即BST(binary search tree),这样的有一个关键字,满足 ...

Mon Dec 09 07:21:00 CST 2013 0 4682
普通平衡树

普通平衡树 splay 板子、、、写的有点长 旋转版treap 跑得快然而没卵用。 无旋treap 是不是我常数写大了?好慢。。。 SGT 即替罪羊。重构的思想很不错,常数小,因为我把alpha设成了0.7233333 vector %烂 ...

Mon Sep 25 06:16:00 CST 2017 4 768
平衡树Splay、fhq Treap)

Splay Splay(伸展)是一种二叉搜索。 其复杂度为均摊\(O(n\log n)\),所以并不可以可持久化。 Splay的核心操作有两个:rotate和splay。 pushup: 上传信息,比如区间和、子树大小... rotate: rotate实现把一个节点\(x\)转到 ...

Tue Dec 03 01:27:00 CST 2019 6 155
平衡树算法

一、平衡树用来干什么 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入 xxx 数 删除 xxx 数(若有多个相同的数,因只删除一个) 查询 xxx 数的排名(排名定义为比当前数小的数的个数 +1+1+1 ) 查询排名为 xxx 的数 求 ...

Mon Jan 20 00:16:00 CST 2020 0 932
[总结] 后缀平衡树学习笔记

定义 后缀平衡树,就是动态的维护后缀数组,可以 \(O(\log n)\) 在末尾插入字符,\(O(\log n)\) 查询 \(rank,SA\)。但是由于是维护的后缀信息,所以插入只能在末尾插入字符(然后转化成在开头加一个字符),相当于添加一个后缀。 在线构造 方法一: 我们需要一种 ...

Tue Jan 15 18:04:00 CST 2019 0 900
后缀平衡树学习笔记

后缀平衡树简介 后缀平衡树是一种动态维护后缀排序的数据结构。 具体而言,它支持在串\(S\)的开头添加/删除一个字符。 前置知识-重量平衡树 重量平衡树保证操作影响的最大子树大小是最坏的或均摊的或期望的\(O(logn)\)。 不采用旋转机制的重量平衡树-替罪羊 替罪羊依赖于一种暴力 ...

Sat Jan 26 16:57:00 CST 2019 0 624
【知识点】平衡树——Treap和Splay

二叉搜索($BST$):一棵带权二叉树,满足左子树的权值均小于根节点的权值,右子树的权值均大于根节点的权值。且左右子树也分别是二叉搜索。(如下) $BST$的作用:维护一个有序数列,支持插入$x$,删除$x$,查询排名为$x$的数,查询$x$的排名,求$x$的前驱后继等操作 ...

Sun Dec 09 00:16:00 CST 2018 5 552
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM