多路查找树 简单介绍
二叉树操作效率较高,但也存在一些问题。
- 在构建二叉树时,需要多次进行i/o操作(因为数据很可能是通过数据库或本地文件中获取的),节点很多,造成二叉树的层数也多,会降低操作速度。
因此就提出了多路树。允许每个节点可以有更多的数据项和更多的子节点,就是多叉树。比如2-3树,2-3-4树就是多叉树,多叉树通过重新组织节点,减少树的高度,能对二叉树进行优化。
1、2-3树
2-3树:
2-3树是最简单的B树。需要保证顺序。
性质:
- 2-3树所有的叶子节点都在同一层 (只要是B树都满足这个性质)
- 有两个子节点的节点叫做二节点,二节点要么有两个子节点,要么没有子节点
- 有三个子节点的节点叫做三节点,三节点要么有三个子节点,要么没有子节点
- 2-3树是由二节点和三节点构成的树
二节点的左子节点的值小于二节点的值,右子节点的值大于二节点的值;三节点的左子节点的值小于三节点中最小值,中子节点的值在三节点最小值与最大值之间,右子节点的值大于三节点中最大值。
2、B树介绍
B树(B-tree)
B树的阶:节点的最多子节点的个数。比如2-3树的阶是3,2-3-4树的阶是4
B树搜索性能等价于在关键字全集内做一次二分查找。
mysql数据库的查找,索引的数据结构是B树或B+树
3、B+树介绍
B+树是在B树上进行变化得来
B+树说明:
4、B*树介绍
B*树是在B+树基础上变化得来。
B*树比B+树的空间使用率高。