数据结构:大数据索引从二叉查找时到B+树

对数据结构有了解的小伙伴一定知道二叉树、二叉搜索时、平衡二叉搜索树、红黑树、B-树、B+树……等会儿,有点蒙蒙的感觉,出现即合理,那他们各自的优势在哪?最近在复习数据结构,查找了一些资料,现在整理一下,希望我没有理解错,再就是对看这篇文章的人有一丢丢帮助。

  • 二叉树
    单纯的二叉树并没有什么太多吸引人的地方,只是将数据按照树状结构组织在了一起,对于非连续的数据的存储,相比数组来说会节省非常可观的空间。

  • 二叉搜索树
    借鉴二分查找的高效率,对普通二叉树按一定顺序组织成二叉搜索树可以大大提升数据的查找效率。通常情况下查找效率在O(lgN)。但二叉搜索树对数的结构没有限制,所有在最坏情况下会出现O(N),为了保证查找效率,我们需要对二叉树的结构进行限制,接着出现了平衡二叉搜索树。

  • 平衡二叉搜索树
    平衡二叉搜索树控制每一个没叶子节点的左右子树高度差不能超过1,这样就保证了查找效率维持在O(lgN),如果进行加入或是删除操作,对数据的结构造成破坏,需要对树形及时调整。

  • 红黑树
    红黑树跟平衡二叉搜索树的原理差不多,但是对树的高度差控制没有那么严格,只是要求一个子树的高度不能高于另一个子树高度的二倍,所以查找效率没有多大的影响,但是红黑树相比于平衡二叉树的一大优势就是所有的数结构的调整都可以在3次旋转之内完成,效率上得到了很大的提升。
    一颗红黑树需满足:
    (1)每个节点或者是黑色,或者是红色。
    (2)根节点是黑色。
    (3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的哨兵节点。]
    (4)如果一个节点是红色的,则它的子节点必须是黑色的。
    (5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。

  • B-树
    又称B树,B树和B+树都是为数据检索和文件检索而生的,在处理大规模数据的时候上面提到的几种树显得力不足,尤其是在定位记录所经历的中间过程复杂度和区间定位上。B树可以明显的缩短定位的中间过程,加快存取速度,而且B树可以有大于2个子树的优势,可实现多路查找。
    一棵M阶的B树需要满足:
    (1)每个结点至多有M个孩子;
    (2)除根结点和叶结点之外,其他每个结点至少有M/2个孩子;
    (3)根结点至少有两个孩子(除非该树仅包含一个结点);
    (4)所有的叶结点在同一层,叶结点不包含任何关键字信息;
    (5)有K个关键字的非叶结点恰好包含K+1个孩子;

  • B +树
    简单的讲,B+树同B树的区别就是B+树所有的记录都在叶子节点上(B树可以把计算存在中间节点),而且B+树的所有叶子节点都通过一个指针相连。

写的相当草率,有时间过来加精,欢迎各位的批评指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值