B树、B-树、B+树、B*树的特点:
B树:二叉树,每个结点只存储一个关键字,等于则命中,小于走左结点,大于走右结点;
B-树:多路搜索树,每个结点存储M/2到M个关键字,非叶子结点存储指向关键字范围的子结点;
所有关键字在整颗树中出现,且只出现一次,非叶子结点可以命中;
B+树:在B-树基础上,为叶子结点增加链表指针,所有关键字都在叶子结点中出现,非叶子结点作为叶子结点的索引;B+树总是到叶子结点才命中;
B*树:在B+树基础上,为非叶子结点也增加链表指针,将结点的最低利用率从1/2提高到2/3;
性能比较:
性能相当,都等价于在关键字全集做一次二分查找;
B-树 改善了B树的平衡问题,
B+树比 B-树 更适合文件索引系统(结构上的改善),
B*树比B+树改善了空间利用率。
红黑树和AVL树的比较:
红黑树:
(1)并不追求“完全平衡”——它只要求部分地达到平衡要求,降低了对旋转的要求,从而提高了性能。红黑树能够以O(log2 n) 的时间复杂度进行搜索、插入、删除操作。
(2)此外,由于它的设计,任何不平衡都会在三次旋转之内解决。红黑树能够给我们一个比较“便宜”的解决方案。红黑树的算法时间复杂度和AVL相同,但统计性能比AVL树更高。
AVL树:
(1)它的左子树和右子树都是AVL树,左子树和右子树的高度差不能超过;
(2) 查找、插入和删除在平均和最坏情况下都是O(log n),增加和删除可能需要通过一次或多次树旋转来重新平衡这个树;
(3)一棵n个结点的AVL树的其高度保持在0(log2(n)),不会超过3/2log2(n+1)
一棵n个结点的AVL树的平均搜索长度保持在0(log2(n)).
一棵n个结点的AVL树删除一个结点做平衡化旋转所需要的时间为0(log2(n)).
B树、B-树、B+树、B*树的特点 及其性能比较
原文作者:B树
原文地址: https://blog.csdn.net/panghuizl/article/details/6921631
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/panghuizl/article/details/6921631
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。