数据结构 - 红黑树 RB-Tree 与搜索

红黑树存在的意义:

红黑树是一种典型的数据结构,任何一种数据结构的存在都有其意义,一定是在某个应用方面存在着极高的利用价值,红黑树是一种高效查找算法数据结构,主要就是为了高效的进行 “ 增删改查” 。下面首先简要的给出目前典型的查找方法

(1)暴力搜索:顾名思义,就是对待查找的数据从头到尾遍历,是思路最简单但效率低下的算法,但并不意味着暴力搜索方法就不存在了应用。

(2)二分查找:二分查找是一种高效的查找算法,但二分算法查找的应用条件是查找序列应为有序序列,转换成数据结果就是二叉查找树(二叉搜索树、二叉排序树),时间复杂度为O(logn)。

(3)哈希查找:哈希查找是最高效的查找方法,时间复杂度为O(1),但哈希查找存在“Hash冲突”,详见Hash。

(4)bfs/dfs:图论中的搜索方法。

(5)B-Tree:有的称为B树,有的称为B-树。

(6)B+Tree:B+树

(7)二叉搜索树:是一种满足“左<根<右”的特殊二叉树,极端的二叉搜索树是一种不平衡的二叉树,退化为链表结构,查找的时间复杂度O(n),这种情况显然不符合二分查找的思想,由此引进了平衡树(AVL)的概念,但AVL追求的是极致的平衡,实际应用中不会应用。

(8)红黑树:高效的查找算法数据结构,底层的数据结构就是一种“特殊的二叉查找树”,就是为了避免二叉搜索树退化为链表的这种情况。java中的HashMap就是一种链表+红黑树的组合。

红黑树:

1、红黑树的发展历程:

笔者此处所说的发展历程并不是指红黑树在历史时间节点上的发展,而是从数据结构上来看,任何一种数据结构都是在简单的数据结构基础上发展的,红黑树也是如此。

(1)二叉查找树:

首先给出二叉查找树的定义:二叉查找树任意节点的左子树值小于等于该节点,右子树的值大于等于该节点。在二叉查找树中查找数据实际上就是一种二分查找的方法。

                                                

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值