二叉树与二叉查找树的操作是必须要熟练掌握的,接下来说的这些树实现起来很困难,所以我们重点去了解他们的特点。
一、平衡二叉查找树与红黑树
平衡树AVL:追求绝对的高度平衡,它具有稳定的logn的高度,因此有很好的查找性能O(logn),由于它每次插入删除都需要再平衡,所以插入删除代价较大。
红黑树:红黑树是类平衡树,它不要求绝对平衡,所以他的查找性能略逊于AVL,但是它却因此可以获得较好的插入删除性能O(logn),因此我认为它是一种折中的次略。
二、B树与B+树
B树与B+树的区别
结构:
①B树的关键字信息分布在非终端节点上,B+树的关键字信息全在叶子节点上,非终端节点可以看成是索引
②B+树的叶子节点顺序链接,因此有两种遍历方式,从根节点遍历或按最小值遍历
优点:
①B+树更加适合做文件系统索引,B+树的非终端节点含有关键信息的索引,因此其非终端节点的存储空间更小,同一大小盘块儿就能够装更多的内容,磁盘IO次数就越少。
②B+树的每一次查找都是从根节点到叶子节点,因此有更加稳定的查询性能。
为什么索引能够提高查询性能
B树的每一个节点包含更多的关键字信息,统一节点顺序存储,假设一个节点在一个盘块儿中,与二叉树相比显然可以降低IO操作的次数。