
数据结构进阶
数据结构
长不大的大灰狼
这个作者很懒,什么都没留下…
展开
-
复合索引的底层数据结构——最左原则
复合索引的底层数据结构复合索引一定是一颗B+树这是一张表格,col1 是主建,col2和col3 是普通字段。主索引 对应的 B+树 结构是这样的:对col3 建立一个单列索引:如果对 col3 和 col2 建立 联合索引,那么 B+ 树会是一个什么样子的呢?首先可以肯定的是,肯定只有一棵树,又因为 最左原则的存在:先根据col3 排序,在根据 col2 排序。建索引语句 CREATE INDEX IDX_XXX ON TABLE(COL3, COL2);为了更好的理解,在例子中转载 2020-07-24 10:31:48 · 3786 阅读 · 4 评论 -
B树——Mysql存储引擎结构
B树——MySQL存储引擎结构搜索树保存数据时,其实只在内存中保存了每一项数据信息中需要查找的字段以及数据在磁盘中的位置,整体的数据实际也在磁盘中。缺陷:树的高度比较高,查找时最差情况下要比较树的高度次。数据量如果特别大时,树中的节点可能无法一次性加载到内存中,需要多次IO(IO耗费时间长)。1 B-树1970年,R.Bayer和E.mccreight提出了一种适合外查找的树,它是一种平衡的多叉树,称为B树(有些地方写的是B-树,注意不要误读成"B减树")。B-树由于是多叉树,所以树的高度要原创 2020-07-14 12:09:17 · 1225 阅读 · 0 评论 -
用Hash相关算法解决海量数据处理问题
用Hash相关算法解决海量数据处理问题对于一个数据量为m的数据,调用n次contains问题。(1)遍历:时间复杂度:O(m)*n == O(m*n)(2)先排序,后二分查找。时间复杂度:O(m*log(m))(排序) + O(log(m))*n(查找) == O((m+n)*log(m))(3)先保存HashSet,再查找:时间复杂度:O(m) +O(1)*n == O(m+n)空间复杂度:O(m)1 位图来处理大数据问题:位图思想引入:int[] array = {3,4,1,2,原创 2020-07-14 11:38:49 · 748 阅读 · 0 评论 -
红黑树——Java
红黑树红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。红黑树的性质每个结点不是红色就是黑色;根节点是黑色的 ;如果一个节点是红色的,则它的两个孩子结点是黑色的 ;对于每个结点,从该结点到其所有后代叶结点的简单路径上,均包含相同数目的黑色结点 ;每个叶子结点都是黑色的(此处的叶子结点指的是空结点);满足上面的性质,红黑树就能原创 2020-07-14 11:04:38 · 205 阅读 · 0 评论 -
常用的查找算法简介以及AVL树
平衡二叉搜索树——AVL树——平衡二叉搜索树(Self-balancing binary search tree)Ⅰ 搜索/查找——相关的算法及数据结构(1)遍历查找比较方式:equals()时间复杂度:O(n)(2)二分查找比较方式:compare()时间复杂度:O(log n)对数据要求强约束:必须是数组数据必须有序二分查找是基于比较的查找(小于中间值的往左边找,大于中间值的往右边找),只适合于静态数据(数据不会发生变化),因为插入或者删除可能会破坏数组的有序性,而为了维护约原创 2020-07-06 21:57:51 · 1517 阅读 · 0 评论