数据结构
文章平均质量分 83
diaog
简书主页:https://www.jianshu.com/u/709a9269f652
展开
-
数据结构-堆
堆是数组内部的二叉树,因此它不使用父/子指针。根据“堆属性”对堆进行排序,该“堆属性”确定树中节点的顺序。堆的常见用途:建立优先级队列。支持堆排序。快速计算集合的最小(或最大)元素。堆属性堆有两种:max-heap和min-heap,它们的存储树节点顺序不同。在最大堆中,父节点的值大于其每个子节点的值。在最小堆中,每个父节点的值都小于其子节点的值。这称为“堆属性”,对...原创 2019-09-28 18:55:17 · 200 阅读 · 0 评论 -
堆排序
堆排序算法利用数据结构-堆的结构来执行快速排序。为了实现从最低到最高排序,堆排序首先将未排序的数组转换为最大堆,以便数组中的第一个元素最大。假设要排序的数组是:[ 5, 13, 2, 25, 7, 17, 20, 8, 4 ]首先将其转换为最大堆,如下所示:此时堆的内部数组为:[ 25, 13, 20, 8, 7, 17, 2, 5, 4 ]现在开始对堆进行排序操作将第一个...原创 2019-09-28 18:57:25 · 122 阅读 · 0 评论 -
二叉树与红黑树
二叉查找树BST二叉查找树就是一颗二叉树,他的左节点比父节点要小,右节点比父节点要大。他的高度决定的查找效率。理想状态下,二叉树的增删改查的时间复杂度为O(LogN),最坏的情况为O(N)。当他的高度为LogN+1时,我们说二叉查找树是平衡的。下面盗图几张。T key = a search key; //查找的值Node root = point to the root of a bst;...原创 2019-08-29 19:57:37 · 297 阅读 · 0 评论 -
B类树详解及B+树在Mysql索引的应用
写在最前一直不知道B树是什么,面试的时候也被问过Mysql索引。所以写写B类树中B树,B+树的定义和增删操作。最后为Mysql中索引对B+树的使用。B树的定义B树也称B-树,它是一颗多路平衡查找树。我们描述一颗B树时需要指定它的阶数。阶数表示一颗节点最多有多少个孩子节点,一般用字母m表示。当m=2时,就是常说的二叉查找树BST。一颗m阶的B树定义如下:每个节点最多有m-1个关键字...原创 2019-09-29 16:00:08 · 463 阅读 · 0 评论 -
ThreadLocal
先来看看Jdk1.8对ThreadLocal的解释:JDK1.8定义:当前类提供线程本地变量。这些变量不同于正常变量,而是访问这些变量的每一个线程,都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal通常是类中private static字段,期望与线程的某一个状态相关联(例如用户ID或事务ID)。简单的来说,ThreadLocal是线程的本地变量,不用线程访问同一个Thr...原创 2019-09-30 19:01:40 · 123 阅读 · 0 评论