B树、B-树、B+树、B*树的特点 及其性能比较
来源:互联网 发布:阿里云 内网带宽 编辑:程序博客网 时间:2024/06/06 02:10
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)).
- B树、B-树、B+树、B*树的特点 及其性能比较
- B树、B-树、B+树、B*树的特点 及其性能比较 http://blog.csdn.net/panghuizl/article/details/6921631
- B,B-,B+,B*树
- B-、B、B+、B*树
- B/B+/B*树
- B- ,B+ , B*树
- B , B+ ,B*树
- B-, B+,B* 树
- B-树,B+树与B*树的优缺点比较
- B树B-B+树
- B- B+ B*树 小结
- B 、B-、B+树总结
- B-、B+、B*树介绍
- B树、B+树、B-树特点整合
- B 树、 B- 树、 B+ 树、 B*
- B树、B-树、B+树、B*
- B树,B-,B+,B*树
- B树、B-、B+、B*树
- 匹配查询_find_pg_grep_sed_awk
- Linux网卡配置
- Linux C 函数参考(日期时间)
- 如何去除Ubuntu 11.X 的全局菜单
- 核心显示类 DisplayObject SubClass
- B树、B-树、B+树、B*树的特点 及其性能比较
- 漫谈经典排序算法:三、冒泡排序 && 快速排序
- python处理xml数据
- hello word!
- Jquery常用方法总结
- busybox 详解(一篇讲busybox很详细的文章)
- 漫谈经典排序算法:四、归并排序(合并排序)
- 讲解AGAL的文章
- 对话框中 嵌入RICHEDITView视图 设置垂直文本