算法导论 习题 12-2 基数树(Radix tree)
2011-11-29 17:00
555 查看
题目内容见算法导论161页的12-2,要求是给定一个由二进制串构成的结合S,利用基数树来对S进行排序。算法起始思路还是比较清楚的,1,首先我们需要利用S来构造基数树,我们对每一个S中的串s,遍历其每一位,遍历完成后我们就可以找到它在树中的最终位置。2,在确定了位置之后,我们将当前位置的节点的key设置为这个二进制串s(如果S中有相同的串,我们需要给每个节点维护一个链表即可,有点像散列表的链接存贮,但是S是一个集合,里面元素应该都是不重复的)3,在树的构建过程中,没有存储元素的节点为空。4,最后我们通过树的前序遍历即可实现有序输出S。(因为根据规则,对于某一个节点,它是严格小于其左子树和右子树的节点的,因为长度比它的孩子短,而左子孩子是严格小于其右子孩子的,即 n < left(n) < right(n))
在1,2,3步构建基数树的过程中,时间代价是O(n),而在遍历树的代价是O(|S|),我们知道 |S| <= n的,所以总的时间代价就是 O(n)
在1,2,3步构建基数树的过程中,时间代价是O(n),而在遍历树的代价是O(|S|),我们知道 |S| <= n的,所以总的时间代价就是 O(n)
相关文章推荐
- 菜鸟nginx源码剖析数据结构篇(五) 基数树 ngx_radix_tree_t
- 查找——图文翔解RadixTree(基数树)
- nginx 学习八 高级数据结构之基数树ngx_radix_tree_t
- 基数树 radix_tree
- 【nginx源码学习与运用 七】基数树结构ngx_radix_tree_t
- 算法导论 第12章 12-2 基数树
- 【转】查找——图文翔解RadixTree(基数树)
- 基数树(Radix Tree)
- 基数树(radix tree)
- radix tree 基数树
- ngx_radix_tree基数树
- 算法导论-12-2-基数树
- 基数树(radix tree)
- 算法导论【思考题Problems 12-2: Radix trees 】
- 算法导论-12-2-基数树
- 算法导论第四版学习——习题五Kd-Tree
- 菜鸟nginx源码剖析数据结构篇(五) 基数树 ngx_radix_tree_t
- 基数树(radix tree)
- 基数树(radix tree)
- 基数树(radix tree)