一、前言

红黑树,是一种高效的自平衡二叉查找树

Rudolf Bayer 于1978年发明红黑树,在当时被称为对称二叉 B 树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的红黑树

红黑树具有良好的效率,它可在近似O(logN) 时间复杂度下完成插入、删除、查找等操作,因此红黑树在业界也被广泛应用,比如 Java 中的 TreeMap,JDK 1.8 中的 HashMap、C++ STL 中的 map 均是基于红黑树结构实现的。

死记硬背,很难学会

红黑树的结构和设计都非常优秀,也同样在实现上有着复杂的处理逻辑,包括插入或者删除节点时;颜色变化、旋转操作等操作。但如果只把这些知识点硬背下来,什么时候染色、什么时候旋转,是没有多大意义的,用不了多久也就忘记了。所以这部分的学习,了解其根本更重要。

说到博客,大家会不由自主的地想到博客园,CSDN,GitHub,简书等。在这些平台里,有着无数的程序员发表自己的博客,这些博客有的是纯技术干货的分享,有的是对编程思想的感悟。可以说,一个好的博客平台是程序员心中的圣地。

java list 红黑树优化_红黑树

1.对待博客的态度

然而对于程序员来说,并没有太多人的人坚持写博客,一方面程序员本身不善于写文章,另一方面很多程序员认为自己不是大牛,写了博客也没人看。

java list 红黑树优化_红黑树_02

其实不然,不是大牛就不能写博客了吗?答案是否定的。正因为自己不是大牛,才更要写博客。我们写不出好的文章,但总能写的清楚吧。更何况,小编这里说的博客,并不仅仅是写一篇文章,而是一个自己思考,实践,遇到问题解决问题,最后总结的一个过程,也可以说是一次感悟。作为程序员,不应只有敲键盘的霹雳劈啪声,更应该有自己的修炼感悟之道。

然而对于程序员来说,并没有太多人的人坚持写博客,一方面程序员本身不善于写文章,另一方面很多程序员认为自己不是大牛,写了博客也没人看。

1.强化知识点

2.为什么要写博客

java list 红黑树优化_红黑树_03

2.真正理解和掌握技术的原理

很多时候我们自己认为我们掌握了一门技术或一些术语,但直到我们向别人讲授这些概念,我们才能真正知道自己的理解程度。

java list 红黑树优化_java_04

3.找到当年解决问题的思路

对程序员来讲,技术世界的问题层出不穷,即使同样的问题也有可能不断踩坑。遇到似曾相识的问题却忘记当年是如何搞定的?没记笔记,悔不当初啊~ 如果当时能够养成写博客的习惯,把工作中、学习中遇到的问题及解决方案详细记录下来,那么再遇到相同问题就可以快速查看当时的解决思路,问题秒解~

java list 红黑树优化_java_05

这里以生日派对为例

4.提高自己的知名度,分享精神的提倡,甚至乎得到稿费

写博客就是一个很好的锻炼思维和组织总结能力的方式,你如果能用简洁易懂的字句(能用生动的比喻则更佳),给别人讲明白,那你就已经理解了这门技术。如果你能用漫画等更多的形式,把技术难点画出来,你更牛同时面试官也可能是你的忠实粉丝。