B树 如果数据装不下主存,那么这就意味着必须把数据结构放在磁盘上,此时,因为大O模型不再适应,所以导致规则发生了变化。 不平衡二叉树的最坏情形下它具有线性的深度,由于典型的AVL树接近到最优的高度,但二叉查找树不能进到低于LogN。一棵完全二叉树的高度大约为与log2N,而一棵完全M叉树的高度大约是 ...
分类:
其他好文 时间:
2020-01-09 20:45:15
阅读次数:
73
左偏树 定义一个节点的高度为到叶子节点的最短距离。 一棵左偏树需要满足几个性质: $1.$它是一个堆。 $2.$一个节点的左儿子的高度$\ge$右儿子的高度。 $3.$一个节点的高度$=$右儿子的高度$+1$。 由此可以得出一个节点数为$n$的左偏树的高度为$\log (n+1) 1$。 每个节点需 ...
分类:
其他好文 时间:
2020-01-08 00:30:40
阅读次数:
66
描述 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定的有序链表: [-10, -3, 0, 5, 9], 一个可能的答案是:[0, -3, 9, -10, null, ...
分类:
其他好文 时间:
2020-01-06 12:24:04
阅读次数:
77
题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 解析 “平衡二叉树(Balanced Binary Tree)具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 自己提交代码: 思路:根据求树深度的方法,求当前节点左右子树最大深度并判 ...
分类:
其他好文 时间:
2020-01-04 14:12:07
阅读次数:
70
AVL树 自平衡树:AVL树是一颗二分搜索树,同时左右子树的高度差不超过1,AVL是自平衡的 主要是通过左旋和右旋来维护平衡 统计一本书中共出现多少个单词,每个单词出现了多少次:使用AVL树实现Set和Map,Set用于统计共出现了多少个不同的单词,Map用于容纳每个单词出现的次数。 AVLTree ...
分类:
其他好文 时间:
2020-01-01 12:08:26
阅读次数:
98
索引的存储结构 l B Tree和B+ Tree的特点与区别 * 树的高度一般都是在2-4这个高度,树的高度直接影响IO读写的次数。 * 如果是三层树结构 支撑的数据可以达到20G,如果是四层树结构 支撑的数据可以达到几十T * B Tree和B+ Tree的最大区别在于非叶子节点是否存储数据的问题 ...
分类:
数据库 时间:
2019-12-28 22:42:09
阅读次数:
97
AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者G.M. Adelson-Velsky和E.M. ...
分类:
其他好文 时间:
2019-12-27 11:36:38
阅读次数:
83
二叉树 基本概念 常见术语 1. 结点: 包含一个数据元素及若干指向子树的分支 2. 结点的度:含有孩子结点的个数 3. 结点的层次:由根结点开始,根结点层次为 0 4. 树的深度:由根结点开始,根结点深度为 0 5. 树的高度:由叶子结点向根结点,取最大值,叶子结点高度为 0 6. 叶子结点(终端 ...
分类:
其他好文 时间:
2019-12-22 14:14:17
阅读次数:
123
第五章 回溯法总结 一、对回溯算法的理解 回溯法和贪心法相比,贪心法是从上到下只进行深度搜索,它的代价取决于子问题的数目,也就是树的高度,每次在当前问题的状态上作出的选择都是1,换言之,它不进行广度搜索,这也造成了它的一个缺点:它得出的解不一定是最优解,很有可能是近似最优解。回溯法是从上到下进行深度 ...
分类:
其他好文 时间:
2019-12-19 23:11:38
阅读次数:
142
一般来说,删除节点可分为两个步骤: 首先找到需要删除的节点; 如果找到了,删除它。 说明: 要求算法时间复杂度为 O(h),h 为树的高度。 示例: root = [5,3,6,2,4,null,7] key = 3 5 / \ 3 6 / \ \ 2 4 7 给定需要删除的节点值是 3,所以我们首 ...
分类:
其他好文 时间:
2019-12-11 14:44:44
阅读次数:
100