数据结构
carPeak
这个作者很懒,什么都没留下…
展开
-
MySQL为什么选B+树
平衡二叉树(AVL树)B 树又叫平衡多路查找树为什么MySQL索引更适合B+树而不是二叉树、B树MySQL学习笔记索引篇:B树和B+树为什么Mysql用B+树做索引而不用B树从Mysql(Inoodb)的角度来看,B+树是用来充当索引的,一般来说索引非常大,尤其是关系性数据库这种数据量大的索引能达到亿级别,所以为了减少内存的占用,索引也会被存储在磁盘上。那么Mysql如何衡量查询效率呢?磁盘IO次数,B-树(B类树)的特定就是每层节点数目非常多,层数很少,目的就是为了就少磁盘IO次数,当查询数据转载 2020-09-23 15:30:59 · 436 阅读 · 0 评论 -
LRU、LFU学习
深入理解LinkedHashMap和LRU缓存LRU Least Recently Used 最近最久未使用 (如果数据最近被访问过,那么将来被访问的几率也更高)。底层是LinkedHashMap,初始化的时候第三个参数(accessOrder参数)需要true,再重写removeEldestEntry函数。**如果第三个初参数为false,且重写removeEldestEntry函数为FIFO的缓存形式。**如果,第三个参数为false,不重写removeEldestEntry函数,则原创 2020-09-16 20:20:13 · 133 阅读 · 0 评论 -
堆排序——Java实现
堆排序——Java实现堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序是不稳定的:比如:3 27 36 27,如果堆顶3先输出,则,第三层的27(最后一个27)跑到堆顶,然后堆稳定,继续输出堆顶,是刚才那个27,这样说明后面的27先于第二个位置的27输出,不稳定。...转载 2020-09-14 20:39:58 · 94 阅读 · 0 评论 -
红黑树
红黑树本质上是一种二叉查找树,但它在二叉查找树的基础上额外添加了一个标记(颜色),同时具有一定的规则。这些规则使红黑树保证了一种平衡。插入、删除、查找的最坏时间复杂度都为 O(log2n)。重温数据结构:深入理解红黑树黑色高度从根节点到叶节点的路径上黑色节点的个数,叫做树的黑色高度。红黑树的 5 个特性红黑树在原有的二叉查找树基础上增加了如下几个要求:1 每个节点要么是红色,要么是黑色;2 根节点永远是黑色的;3 所有的叶节点都是是黑色的(注意这里说叶子节点其实是上图中的 NIL 节转载 2020-08-26 23:06:31 · 136 阅读 · 0 评论 -
哈夫曼树
哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的带权路径长度记为WPL=(W1L1+W2L2+W3L3+…+ WnLn),N个权值Wi(i=1,2,…n)构成一棵有N个叶结点的二叉树,相应的叶结点的路径长度为Li(i=1,2,…n)。哈夫曼树原理,及构造方法构造哈夫曼树的算法如下1)对给定的n个权值{W1,W2,W3,...,Wi,...,Wn}构成n棵二转载 2020-08-26 22:29:54 · 195 阅读 · 0 评论 -
排序算法的比较与应用
图片 文字 为转载,如侵删:应用场景(1)若n较小(如n≤50),可采用直接插入或直接选择排序。当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直接插人,应选直接选择排序为宜。(2)若文件初始状态基本有序(指正序),则应选用直接插人、冒泡或随机的快速排序为宜;(3)若n较大,则应采用时间复杂度为O(nlgn)的排序方法:快速排序、堆排序或归并排序。 快速排序是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短转载 2020-08-26 21:06:38 · 151 阅读 · 0 评论 -
HashMap知识点总结
HashMap实现原理及源码分析HashMap常见面试题整理HashMap是头插法还是尾插法hashmap扩容时死循环问题推荐:Hashmap的结构,1.7和1.8有哪些区别,史上最深入的分析Java中的hashmap与负载因子负载因子不会缓解hash冲突,他只是减缓同一个数组位置下的拥挤程度。resize方法:扩容方法rehash:扩容后,将之前的数据重新分配到扩容后的hashmap中。为什么使用HashMap需要重写hashcode和equals方法?...转载 2020-08-17 19:35:44 · 77 阅读 · 0 评论