平衡树B树B+树红黑树跳跃表

二叉树与二叉查找树的操作是必须要熟练掌握的,接下来说的这些树实现起来很困难,所以我们重点去了解他们的特点。

一、平衡二叉查找树与红黑树跳跃表

平衡树AVL:追求绝对的高度平衡,它具有稳定的logn的高度,因此有很好的查找性能O(logn),由于它每次插入删除都需要再平衡,所以插入删除代价较大。

红黑树:红黑树是类平衡树,它不要求绝对平衡,所以他的查找性能略逊于AVL,但是它却因此可以获得较好的插入删除性能O(logn),因此我认为它是一种折中的次略。

跳跃表:跳跃表查询、插入、删除有log(n)的复杂的,由于其结构相比红黑树简单,所以插入删除的效率较高,但是查询略逊于红黑树,跳跃表的空间代价较大。

二、B树与B+树

B树与B+树的区别

结构:

①B树的data信息分布在非终端节点上,B+树的data信息全在叶子节点(存储的是数据链接),非终端节点可以看成是索引

优点:

①B+树由于内节点无 data 域,每个节点能索引的范围更大更精确,由于B+树的叶子节点的数据都是使用链表连接起来的,更适合范围查询。

②B+树的每一次查找都是从根节点到叶子节点,因此有更加稳定的查询性能。

为什么索引能够提高查询性能

B+树的每一个节点包含更多的关键字信息,统一节点顺序存储,与二叉树相比显然可以降低IO操作的次数。

 

一文彻底搞懂MySQL基础:B树和B+树的区别

数据库--索引详解

最左匹配原则

posted @ 2019-12-21 13:58  卑微芒果  Views(2110)  Comments(0Edit  收藏  举报