您的位置:首页 > 理论基础 > 计算机网络

B树、B-树、B+树、B*树的特点 及其性能比较 http://blog.csdn.net/panghuizl/article/details/6921631

2016-02-23 21:09 866 查看


B树、B-树、B+树、B*树的特点 及其性能比较

标签: 存储算法
2011-10-31 15:38 3658人阅读 评论(1) 收藏 举报


分类:

各种数据结构(1)


B树、B-树、B+树、B*树的特点:

B树:二叉树,每个结点只存储一个关键字,等于则命中,小于走左结点,大于走右结点;

B-树:多路搜索树,每个结点存储M/2到M个关键字,非叶子结点存储指向关键字范围的子结点;

所有关键字在整颗树中出现,且只出现一次,非叶子结点可以命中;

B+树:在B-树基础上,为叶子结点增加链表指针,所有关键字都在叶子结点中出现,非叶子结点作为叶子结点的索引;B+树总是到叶子结点才命中;

B*树:在B+树基础上,为非叶子结点也增加链表指针,将结点的最低利用率从1/2提高到2/3;

性能比较:

性能相当,都等价于在关键字全集做一次二分查找;

B-树 改善了B树的平衡问题,

B+树比 B-树 更适合文件索引系统(结构上的改善),

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)).
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: