什么是堆 堆是一个近似 完全二叉树 的结构, 并同时满足 堆积的性质 :即子结点的键值或索引总是小于(或者大于)它的父节点。 什么是堆排序 堆排序 (英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。 实现大顶堆 首先我们需要找到所有的非叶子结点,通过完全二叉树的性质我们知道 若父 ...
分类:
编程语言 时间:
2020-05-23 18:40:01
阅读次数:
65
按数据结构 B树索引 数据位于叶子节点,到任何一个叶子节点的距离相同,一般不超过3-4层 B+树索引:每个叶子节点除了数据还存放前后叶子节点的指针,方便快速检索,是InnoDB采用的索引结构 Hash索引 Fulltext索引 R树索引 按实现方式 聚集索引(聚簇索引) 叶子节点存放行数据 将索引行 ...
分类:
数据库 时间:
2020-05-23 00:12:43
阅读次数:
77
线段树 线段树的根节点是整段区间,其它结点是由区间不断二分得到的子区间,其中叶子结点是区间的每个单独的元素。 存储 这里使用结构体存线段树。 建树 这里默认我们要求的是区间和,故结点值均为区间和。 可以视情况改变结点值的含义。 懒标记 如果每次对叶子结点的值进行修改时,总是一并将受其影响的其他父结点 ...
分类:
编程语言 时间:
2020-05-22 19:29:31
阅读次数:
47
题目: 二叉树的最大深度:给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 思路: 借助层序遍历来做,有多少层树就有多深。 程序: # Definition for a binary tree node. # clas ...
分类:
编程语言 时间:
2020-05-19 11:06:30
阅读次数:
164
什么是红黑树? 红黑树的定义 每个节点或者是红色的,或者是黑色的。 根节点是黑色的。 每一个叶子节点(最后的空节点)是黑色的。 如果一个节点是红色的,那么他的孩子节点都是黑色的。 从任意一个节点到叶子节点,经过的黑色节点是一样的。 直接看到这些定义是非常难以理解的,红黑树为什么这样定义? 在算法4这 ...
分类:
其他好文 时间:
2020-05-18 20:42:42
阅读次数:
42
MySQL的InnoDB索引结构采用B+树,B+树什么概念呢,二叉树大家都知道,我们都清楚随着叶子结点的不断增加,二叉树的高度不断增加,查找某一个节点耗时就会增加,性能就会不断降低,B+树就是解决这个问题的。 B树和B+树 在一棵M阶B树中,每个节点最多有 M 1 个关键字,根节点最少可以只有一个关 ...
分类:
数据库 时间:
2020-05-17 12:58:34
阅读次数:
86
堆排序 大根堆,小根堆:所有非叶子节点大于或者小于其孩子节点。 用大根堆进行从小到大的排序 建立大根堆:从下往上,从右往左遍历非叶子节点,判断其是否符合大根堆性质,若不符合,则交换节点位置,直至建出大根堆。 大根堆根节点一定是被排序的这段数值的最大值,交换堆尾堆首数值,堆尾指针前移(有没有冒泡的感觉 ...
分类:
编程语言 时间:
2020-05-16 12:18:49
阅读次数:
77
哈夫曼树是由n个带权叶子结点构成的所有二叉树中带权路径最短的二叉树。 结点间的路径长度:树中一个结点到另一个结点之间分支数目称为这对结点之间的路径长度。 树的路径长度PL:树的根结点到树中每一结点的路径长度之和。 带权路径长度带权路径长度:从根结点到某结点的路径长度与从根结点到某结点的路径长度与该结 ...
分类:
其他好文 时间:
2020-05-16 10:44:21
阅读次数:
48
1. B+树的数据都集中在叶子节点。分支节点只负责索引。B树的分支节点也有数据。B+树的层高会小于B树,平均的Io次数会远小于B树 2. B+树更擅长范围查询。存储在叶子节点中的数据是按顺序放置的双向链表。而B树范围查询只能中序遍历。 3. 索引节点没有数据。比较小。b树可以把索引完全加载至内存中。 ...
分类:
数据库 时间:
2020-05-13 09:38:12
阅读次数:
109
1. 二叉树 二叉树的特点: ① 所有非叶子节点至多拥有两个儿子(Left和Right); ② 所有节点存储一个关键字; ③ 非叶子节点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 二叉树的搜索,从根节点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比节 ...
分类:
其他好文 时间:
2020-05-12 17:01:38
阅读次数:
64