平衡树

王老师青少年编程13 天前
c++·csp·平衡树·信奥赛·csp-s·提高组·fhq treap
信奥赛C++提高组csp-s之FHQ TreapFHQ Treap(无旋Treap)是一种基于Tree(二叉搜索树)+ Heap(堆)的数据结构。它的核心特点是不需要旋转操作,仅依靠**分裂(Split)和合并(Merge)**两个核心操作就能实现所有平衡树功能。这也是它相比Splay和有旋Treap的最大优势——代码短小、易于理解、支持可持久化。
王老师青少年编程16 天前
c++·平衡树·treap·信奥赛·csp-s·提高组
信奥赛C++提高组csp-s之平衡树(Treap)二叉查找树(Binary Search Tree, BST)的查找、插入、删除操作时间复杂度为 O(h),其中 h 为树的高度。在理想情况下,BST 的高度为 O(log n),但在最坏情况下(例如插入的节点序列本身有序),BST 会退化成单链表,性能下降到 O(n)。
老鼠只爱大米4 个月前
算法·leetcode·二叉树·二叉搜索树·平衡树·分治法
LeetCode经典算法面试题 #108:将有序数组转换为二叉搜索树(递归分治、迭代法等多种实现方案详解)给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。示例 1:
让我们一起加油好吗10 个月前
数据结构·c++·visualstudio·avl树·平衡树
【C++】AVL树(详解)我们都知道二叉搜索树,它的搜索效率很高,可以达到 O ( log ⁡ N ) O(\operatorname{log}N) O(logN)。但是,极端情况下,一棵二叉搜索树可能退化成一个链表,就使得搜索的效率变成 O ( N ) O(N) O(N)。
CUC-MenG10 个月前
数学·线段树·高精度·模拟·dp·红黑树·线性dp·平衡树·线段树维护矩阵
2025杭电多校第八场 最有节目效果的一集、最自律的松鼠、最甜的小情侣、最努力的活着 个人题解注意到本题给的\(1\leq n\leq 1e 12\),因此需要使用\(\_\_int 128\)(最大可以存\(2^{128}\))来提高精度
Qres8212 年前
kmp·平衡树·fhq
8.26 T4 日记和编辑器(fhq维护kmp——kmp本身含有的单射与可合并性)http://cplusoj.com/d/senior/p/NOD2301D前4个操作拿fhq treap是很好维护的。
YMWM_2 年前
数据结构·算法·平衡树
acwing算法提高之数据结构--平衡树Treap本博客用来记录使用平衡树求解的题目。插入、删除、查询操作的时间复杂度都是O(logN)。动态维护一个有序序列。
ILoveFujibayashiRyou2 年前
时间复杂度·平衡树·splay
splay学习笔记重制版以前写的学习笔记:传送门 但是之前写的比较杂乱,这里重制一下假设我们要维护一个数据结构,支持插入、删除、查询某个值的排名,查询第 k k k大的值等操作。 最直接的想法是用二叉搜索树,也就是左子树权值<根节点权值<右子树权值的数据结构。查询时,如果目标值小于根节点就往左走,否则往右走。 但是二叉搜索树的深度是没法保证的,树高可以达到 O ( n ) O(n) O(n)级别,这样我们的操作都是 O ( n ) O(n) O(n)的。 因此这里我们需要使用平衡树,通过一些操作来维持树的平衡,让单次操作变成 O
OIer-zyh3 年前
数据结构·c++·平衡树
【数据结构】平衡树引入维护一个数据结构,支持插入元素、删除元素、查询元素的排名、查询排名对应的元素、查询元素的前驱、查询元素的后继等。
我是有底线的