二叉搜索树是红黑树的基础。
关于红黑树的链接:
http://blog.csdn.net/v_JULY_v/article/details/6105630
linux kernel 源码中关于红黑树的链接:
https://github.com/torvalds/linux/blob/master/lib/rbtree.c
https://github.com/torvalds/linu...
分类:
其他好文 时间:
2015-01-14 15:41:08
阅读次数:
206
红黑树是建立在二叉查找树的基础之上的,关于二叉查找树可以参看【算法导论】二叉搜索树的插入和删除和【算法导论】二叉树的前中后序非递归遍历实现。对于高度为h的二叉查找树而言,它的SEARCH、INSERT、DELETE、MINIMUM、MAXIMUM等操作的时间复杂度均为O(h)。所以在二叉查找树的高度较高时,上述操作会比较费时,而红黑树就可以解决这种问题。...
分类:
编程语言 时间:
2015-01-14 12:49:51
阅读次数:
1480
一、问题描述 在单处理器上具有期限和惩罚的单位时间任务调度问题。二、算法原理 任务调度问题就是给定一个有穷单位时间任务的集合S,集合S中的每个任务都有一个截止期限di和超时惩罚wi,需要找出集合S的一个调度,使得因任务误期所导致的总惩罚最小,这个调度也称为S的一个最优调度。 实现任务的最优调度...
分类:
编程语言 时间:
2015-01-14 06:11:43
阅读次数:
441
一、问题描述实现3种树中的两种:红黑树,AVL树,Treap树二、算法原理(1)红黑树红黑树是一种二叉查找树,但在每个结点上增加一个存储位表示结点的颜色,可以是red或black。红黑树满足以下五个性质:1) 每个结点或是红色或是黑色2) 根结点是黑色3) 每个叶结点是黑的4)如果一个结点是红的,则...
分类:
编程语言 时间:
2015-01-14 06:11:18
阅读次数:
287
一、问题描述0-1背包问题,部分背包问题。分别实现0-1背包的DP算法,部分背包的贪心算法和DP算法。二、算法原理(1)0-1背包的DP算法 0-1背包问题:有n件物品和一个容量为W的背包。第i件物品的重量是w[i],价值是v[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价....
分类:
编程语言 时间:
2015-01-14 00:42:06
阅读次数:
225
计数排序的关键就在于如何处理每个元素的最终位置。在计数排序中,我们可以通过维护一个数组C[i]来记录键值为i的元素所属的位置。每次输入一个A[i],首先记录每个A[i]出现的次数C[i],然后从前向后C[i]=C[i-1]+C[i],这样可以得出值为i所在排序后新数组中的最后一个重复数的位置。计数排序的一个显然问题就是C[]数组的大小确定的问题。下面贴上我自己理解写出的代码。
#include
...
分类:
编程语言 时间:
2015-01-13 00:09:55
阅读次数:
222
1. 红黑树(RED-BLACK TREE)引言:红黑树(RBT)可以说是binary-search tree的非严格的平衡版本。与之相应的是平衡二叉树(Balanced Binary Tree)又称之为AVL树(因为是G.M. Adelson-Velsky 和 E.M. Landis在1962年发...
分类:
编程语言 时间:
2015-01-12 15:56:55
阅读次数:
357
1 编译器整体设计与实践
1.1 龙书
– 《Compilers Principles,Techniques, & Tool》
本书主页:http://dragonbook.stanford.edu/
这本书因为封面展示了程序员努力与各种计算机难题化身而成的恶魔龙的图片而闻名。
这是编译器领域最著名的一本教材,地位相当于《算法导论》与算法课的...
分类:
其他好文 时间:
2015-01-10 08:57:56
阅读次数:
287
1. 概念:Binary-search tree(BST)是一颗二叉树,每个树上的节点都有parent.left.key。但找到x的parent就结束了吗,还没有,就像TREE-MINIMUM函数一样,我们需要逐层查找,当找到符合条件的parent后,我们递归的继续检查parent节点有没有pare...
分类:
编程语言 时间:
2015-01-09 20:48:25
阅读次数:
219