二叉树 跳表_树与跳表

文章介绍了二叉树、B-Tree、B+Tree和红黑树作为平衡查找树的特性与优缺点,特别是B+Tree在数据库索引中的应用。此外,还探讨了跳表(SkipList)作为一种快速查找的数据结构,如何通过多层索引来提高查找效率,以及在Java中的实现。
摘要由CSDN通过智能技术生成

92c35680449a2095da192aa8b67c810e.png

0x01、树与跳表介绍

二分查找需要把元素存储在连续的内存中,查找的速度很快,但是插入、删除操作时需要保证元素有序性而移动大量元素比较耗性能。

如果需要一个有二分查找的速度,又能快速添加和删除元素的数据结构,首先就是二叉树,但是二叉树最坏的情况下可能变成一个链表。

于是出现了平衡二叉树,根据平衡算法不同分为AVL树(平衡二叉树),B-Tree,B+Tree(Balance),红黑树等,但是AVL树实现起来复杂,平衡操作难以理解,这时候可以使用SkipList跳跃表结构。

0x02、B-Tree、B+Tree、红黑树

平衡二叉树(AVL树)在符合二叉查找树的条件下,还满足任何节点的两个子树的高度最大差为1。下面的两张图片,左边是AVL树,它的任何节点的两个子树的高度差<=1;右边的不是AVL树,其根节点的左子树高度为3,而右子树高度为1;

B-Tree结构的数据可以让系统高效的找到数据所在的磁盘块。为了描述B-Tree,首先定义一条记录为一个二元组[key, data] ,key为记录的键值,对应表中的主键值,data为一行记录中除主键外的数据。对于不同的记录,key值互不相同。

一棵m阶的B-Tre

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值