二叉树,B+和数据库索引

二叉树的性能取决于树的高度,如果二叉树退化成线性表那性能就很差,所以引入了红黑树来确保树的平衡性。

为什么不用红黑树来做文件系统的索引:数据量太大无法将整棵树加载在内存中进行搜索,二叉树是链表存储具有无序性,这样会频繁对硬盘IO。

 

B+树考虑了(有序数组+链表)多路搜索,顺序的存储到磁盘的页上,可以有效的减少了磁盘IO。B+树会存在资源的浪费。

 

旋转操作(Rotate)的目的是使节点颜色符合定义,让RBTree的高度达到平衡。
Rotate分为left-rotate(左旋)和right-rotate(右旋),区分左旋和右旋的方法是:待旋转的节点从左边上升到父节点就是右旋,待旋转的节点从右边上升到父节点就是左旋。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值