红黑树的优势_红黑树在不同场景的应用及其优势

红黑树(平衡的排序二叉树),满足以下性质:

1)每个结点要么是红的,要么是黑的。

2)根结点是黑的。

3)每个叶结点,即空结点(NIL)是黑的。

4)如果一个结点是红的,那么它的俩个儿子都是黑的。

5)对每个结点,从该结点到其子孙结点的所有路径上包含相同数目的黑结点

根据性质5,我们得出:从根到叶子的最长的可能路径不多于最短的可能路径的两倍长

红黑树的关键性质: 内部保证有序,旋转开销小,整体相对平衡

红黑树的应用:

1、java8 hashmap中链表转红黑树。

优势:时间复杂度从O(n)-->O(logn) ,且自旋开销较其他树较低(不用整体平衡)。

2、epoll在内核中的实现,用红黑树管理事件块(文件描述符)。

优势:

1、因为内核态需要维护一个长久存放fd的数据结构,而fd变动十分频繁,且需要支持快速查询,且所以红黑树很适合。

2、红黑树可以判断是否是重复的fd

-----

其实我感觉用hash表也可以

3、Java的TreeMap实现

相对与hashMap优势,内部key保持有序,且支持自定义排序比较器。

适用场景,对数据需要排序统计

4、linux进程调度Completely Fair Scheduler,用红黑树管理进程控制块

CFS 背后的主要想法是维护为任务提供处理器时间方面的平衡(公平性)。这意味着应给进程分配相当数量的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值