机器·人生

1、关于平衡二叉树
对于数组我们可以采用二分查找来最快地找到目标元素。但是,对于链表来说,由于链表节点元素占用的内存不连续,不能直接寻址。为了实现类似于数组的快速查找,可以使用二叉查找树的方式来进行元素查找。通过这种方式达到了近似于O(lgN)的时间复杂度。

常见的平衡二叉树有如下的几种

AVL树     其主要思想是维护树高,使之平衡
红黑树    其主要思想是对节点染色,对不同颜色的节点采用不同的判断,编程复杂度较高
AA树      是红黑树的一种特例
伸展树    有四种旋转规则
Treap    其主要思想是对每个节点附加随机权值,并根据权值维护为堆,因此被命名为Tree+Heap=Treap,其编程复杂度较低,性价比较高。
Size Balanced Tree
          其主要思想为直接维护各子树的节点个数,使之严格平衡。其论文由中国OIer广东纪念中学的陈启峰于2006年底完成,并在Winter Camp 2007中发表。

2.关于内存
内核中内存可以分为有名和匿名内存。一般来说,用户态下分配的内存都是匿名内存。名”的意思可以理解为内存地址的可预知性。

3.关于人生
斗争很多时候是必须的。

Inner Peace有两种方式获得:first,避免一切斗争,将自己保护在一个和平的圈子里;second,斗争,积累和思考过后悟出peace的真意。
关于Inner Peace: 如果把Inner Peace比作一个圆圈上的一点,前者则是一直站在那个点上获得了Inner Peace,后者则是绕着圈圈走了一遭才找到这个点。哪种更好呢?按照我父亲的观点,那该是第一种好,好好的,折腾做什么;按照我的观点,更欣赏第二种。太极,由阳及阴,再由阴回阳,经历了一个轮回,但这不是一个简单的轮回,这个轮回是在上升的。从这个角度看,Inner Peace已经不是一个点了,而是竖直的一根线,它是有不同层次的。然而,二者都是有缺陷的,前者的缺陷在于水平低,后者的缺陷在于无法保证每个人能将那个圈走完。
关于斗争:它以不同的形式存在着,适当的时候将会激化。尽管斗争是不可避免的,我们需要以合适的方式处理,不能鲁莽,不能意气用事,不畏惧,不退缩,干脆利落地结束战斗。

发表评论

邮箱地址不会被公开。 必填项已用*标注