BST树缺点:可能生成链表,复杂度为O(n) (优化AVL)
AVL树缺点:层数太多,磁盘IO读取过多 (优化B树)
B树缺点:不利于范围查找 (优化B+树)
BST树 二叉排序树
- 根节点大于左子树每一个节点值,小于右子树每一个节点值
- 时间复杂度是O(logn)
AVL树 平衡二叉树
- 根节点大于左子树每一个节点值,小于右子树每一个节点值
- AVL树上任意节点的左、右字数的高度差最大为1
B树 平衡多路查找树
- 查询时,树有多少层就要读多少次磁盘IO(尽量把树建矮一点)
- B树的每个结点都包含Key,Value。离根节点越近越利于查找
B+树
- B+的节点,一种时索引节点和叶子节点
- 结果保存在叶子节点
- 叶子节点会形成一条有序链表
- 全部的节点都会出现在叶子节点