用二叉查找树在磁盘上存储数据会面临两个问题: 1、二叉树只有两个分支,数据量非常大的时候,树的高度会很大,不利于数据的查找 2、每次仅若读取一条信息,会造成大量空间的浪费 因此需要把树的高度降低,并且尽量是的每次磁盘读取都能够得到最多的信息 为解决这两个问题,B树应运而生 B树是一种多路平衡树,或者 ...
分类:
其他好文 时间:
2021-04-09 13:24:46
阅读次数:
0
这道题强制在线,那么考虑在线算法 好像复杂度低的可以使用平衡树,但是我们这里使用分块算法 因为数据量不是特别大 因为是在前面加一个后面删一个,所以我们考虑使用双端队列来维护这个信息 这样修改的时候,可以把前面的块的末尾加到后面的块,这样每块的大小都不会发生改变 #include<bits/stdc+ ...
分类:
其他好文 时间:
2021-03-30 13:28:17
阅读次数:
0
跳跃表是随机化的数据,以有序的方式在层次化链表中保存数据,效率和平衡树媲美,直观好懂。 ...
分类:
其他好文 时间:
2021-03-29 12:07:39
阅读次数:
0
字节日常实习一面(武汉后端开发) 原帖地址:https://www.nowcoder.com/discuss/582954 C++里有哪几种map,两种map比较。 基于红黑树的map和基于Hash的map,这两种map的区别其实就是基于数据结构不同的区别,红黑树本质就是平衡树,可以根据键值对有序地 ...
分类:
其他好文 时间:
2021-02-18 13:00:12
阅读次数:
0
算法原理 $fhq - treap$是一种好用的平衡数,以分裂合并为基本操作,代码简洁优雅,能解决包括序列操作在内的大部分问题,适合初学平衡树的$OIer$们(比如我)学习和掌握。 核心:分裂与合并 分裂时一般传四个参数 \(now\) :当前节点 \(k\) :以权值分裂或者以排名分裂时对两棵树的 ...
分类:
其他好文 时间:
2021-02-01 12:51:28
阅读次数:
0
###链接 调了好久。。。 我平常写平衡树时 \(push\) \(tag\) 的操作都习惯把 \(rev\) 数组清零,但在 \(LCT\) 中不行,因为 \(rev\) 储存了节点间的父子关系,直接清零会改变树的结构。 \(\frak{code}\) #include<bits/stdc++.h ...
分类:
其他好文 时间:
2021-01-12 11:26:50
阅读次数:
0
局部性原理 时间局部性和空间局部性 磁盘预读(预读的长度一般为页(page)的整数倍) 页是存储器的逻辑块,操作系统往往将主存和磁盘存储区分割为连续的大小相等的块 每个存储块称为一页(在血多操作系统中,页大小通常为4k) 主存和磁盘以页为单位交换数据 索引 扰动函数 红黑树不是严格的平衡树,是对AV ...
分类:
数据库 时间:
2021-01-05 11:25:40
阅读次数:
0
题目 \(m\) 次区间翻转操作,$1 \leq n,m \leq 100000$ 分析 平衡树模板 于是放上 \(fhq-treap\) 的板子 \(Code\) #include<cstdio> #include<algorithm> #include<ctime> using namespac ...
分类:
其他好文 时间:
2020-12-04 11:21:13
阅读次数:
6
树套树 一种思想,就是一棵树的节点是另一颗树。 在外面的叫外层树,在里面的叫内层树。 外层树一般是, 树状数组 , 线段树 内层树一般是 平衡树 , STL , 线段树 线段树套STL /* * @Author: zhl * @Date: 2020-11-16 12:50:32 */ #includ ...
分类:
其他好文 时间:
2020-11-20 12:20:30
阅读次数:
24
什么是跳跃表跳表由WilliamPugh发明。他在论文《Skiplists:aprobabilisticalternativetobalancedtrees》中详细介绍了跳表的数据结构和插入删除等操作。跳表是一种可以用来代替平衡树的数据结构,跳表使用概率平衡而不是严格执行的平衡,因此,与等效树的等效算法相比,跳表中插入和删除的算法要简单得多,并且速度要快得多。为什么需要?性能比较好。实现相对于红黑
分类:
编程语言 时间:
2020-11-13 13:02:55
阅读次数:
17