笔记——深入理解Linux内核——第九章 进程地址空间——红黑树

刚刚看到了红黑树(red-black tree),进程申请的地址空间管理用到的,改变了我一直的一个观点。我一直以为所有的数据管理都是简单的链表,没有其他的了。看到这里我才发现我的认识是错误的,一切的根本都是链表没错,但在链表的基础上,设计师又设计出了一些链表的节点规则,这样一切就真的就变了。例如这个红黑树,在成百上千个节点的情况下就大大的缩短了查询速度。如果是简单的链表,那速度与节点个数是简单的线性关系。加上红黑树算法后可不是了,它加了一个对数,随着节点数量的增加,速度降低速度明显变缓。

书中写到了红黑树的4条规则:
               1、每个节点必须或为黑或为红
               2、树的根必须为黑
               3、红节点的孩子必须为黑
               4、从一个节点到后代叶子节点的每个路径都包含相同数量的黑节点 。当统计黑节点个数时,空指针也算作黑节点。

后面又举了一个旋转的例子,但是我没看太明白。这块以后还得继续研究,这是我认为我知道的第一个我认为可以成为算法的规则。linux内核用到了这个,说明绝对是一个经典有效的算法。它运行在一切的最底层,运行在你每次malloc的时候。运行在所有其他语言程序操作大数据的下面一层。

前几天和领导谈话的时候已经定下了2019年的学习目标,领导年底的时候会再问我。这一年有的学了。内核&&网络

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值