PHP 面试知识梳理 算法与数据结构 BTree和B+tree BTree B树是为了磁盘或者其他存储设备而设计的一种多叉平衡查找树,相对于二叉树,B树的每个内节点有多个分支,即多叉。 参考文章:https://www.jianshu.com/p/da59af78ec59 B+Tree B+树是B树 ...
分类:
Web程序 时间:
2018-03-14 17:01:16
阅读次数:
240
MySQL的MyISAM、InnoDB引擎默认均使用B+树索引(查询时都显示为“BTREE”),本文讨论两个问题: 为什么MySQL等主流数据库选择B+树的索引结构? 如何基于索引结构,理解常见的MySQL索引优化思路? 为什么索引无法全部装入内存 索引结构的选择基于这样一个性质:大数据量时,索引无 ...
分类:
数据库 时间:
2018-03-12 18:52:18
阅读次数:
218
1.谈谈对Mysql索引的认识。 主键查询走索引,我们一般使用的索引都是Btree索引; MyISAM和InnoDB索引结构有很大差异,这里以InnoDB为例,InnoDB的叶节点存储的是数据的行,而除了主键之外的列索引存储的是主键key,也就是说在查询的时候需要二次查询,先通过列索引找到主键,再通 ...
分类:
数据库 时间:
2018-03-11 21:03:03
阅读次数:
201
MySQL官方对索引的定义:索引是帮助MySQL高效获取数据的数据结构。索引是在存储引擎中实现的,所以每种存储引擎中的索引都不一样。如MYISAM和InnoDB存储引擎只支持BTree索引;MEMORY和HEAP储存引擎可以支持HASH和BTREE索引。 这里仅针对常用的InnoDB存储引擎所支持的 ...
分类:
数据库 时间:
2018-03-11 14:43:59
阅读次数:
177
B 树是为了磁盘或其它存储设备而设计的一种多叉(下面你会看到,相对于二叉,B树每个内结点有多个分支,即多叉)平衡查找树。 B 树又叫平衡多路查找树。一棵m阶的B 树 (m叉树)的特性如下: 树中每个结点最多含有m个孩子(m>=2); 除根结点和叶子结点外,其它每个结点至少有[ceil(m / 2)] ...
分类:
其他好文 时间:
2018-03-02 22:14:54
阅读次数:
771
距离18号的PAT考试还有18天,最重要的是挖透做过的每一题 (1)基本思路: 1.建树用right数组和left保存各个节点的右左节点 2.层次遍历 (2)不建树直接用一个数组存储结果 不过在这之前先试一下更简单的 转换成先序(根左右) 层次遍历 技巧就是虽然不是层次遍历但是可以用index来得到 ...
分类:
其他好文 时间:
2018-02-28 21:36:12
阅读次数:
157
在《二叉树的定义和性质》中我们已经认识了二叉树这种数据结构。我们知道链表的每个节点可以有一个后继,而二叉树(Binary Tree)的每个节点可以有两个后继。比如这样定义二叉树的节点: typedef struct node *link; struct node { unsigned char it ...
分类:
其他好文 时间:
2018-02-26 11:27:42
阅读次数:
162
b树演示网站 https://www.cs.usfca.edu/~galles/visualization/BTree.html https://www.cnblogs.com/George1994/p/7008732.html B树和B+树的总结 B树 为什么要B树 磁盘中有两个机械运动的部分,分 ...
分类:
其他好文 时间:
2018-02-23 20:41:24
阅读次数:
259
#include<bits_stdc++.h>using namespace std;typedef struct btnode{ char data; btnode *lc,*rc;}bitn,*btree;void creattree(btree &t){ char c; cin>>c; if( ...
分类:
其他好文 时间:
2018-02-12 11:30:47
阅读次数:
150
性质: 红黑树是一棵二叉搜索树,他在每一个结点上添加了一个存储位为来标识结点的颜色。能够是RED或者BLACK。通过对不论什么一条从根到叶子的简单路径上各个结点的颜色进行约束,保证没有一条路径比其它路径长出2倍,所以是近似平衡的。 每一个节点是红色或者黑色 根节点是黑色 每一个叶节点(NULL)是黑 ...
分类:
其他好文 时间:
2018-02-11 20:00:42
阅读次数:
137