自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 算法导论14.3区间树 练习总结

14.3-1 写出作用于区间树的结点且在 O(1) 时间内更新 max 属性的过程 LEFT-ROTATE 的伪代码。ANSWER:伪代码:LEFT-ROTATE(T, x) y = x.right y.max = x.max x.max = max(x.left.max, y.left.max, x.int.high)14.3-2 改写 INTERVAL

2015-10-29 00:58:14 3397

原创 算法导论14.2如何扩张数据结构 练习总结

14.2-1 通过为结点增加指针的方式,试说明如何在扩张的顺序统计树上,支持每一动态集合查询操作 MINIMUM、MAXIMUM、SUCCESSOR 和 PREDECESSOR 在最坏时间 O(1) 内完成。顺序统计树上的其他操作的渐进性能不受影响。ANSWER:① MINIMUM:用一个指针指向树中最小的元素。每次插入时与 MINIMUM 比较检测是否需要更改。若删除 MINIMUM,则

2015-10-27 13:14:07 2513

原创 算法导论14.1动态顺序统计 练习总结

14-1.1 对于图 14-1 中的红黑树 T,说明执行 OS-SELECT(T.root,10) 的过程。ANSWER:① 结点 26,x.left.size + 1 = 13 > 10,→ 左子树;② 结点 17,x.left.size + 1 = 8 → 右子树,i = 10 - 8 = 2;③ 结点 21,x.left.size + 1 = 3 > 2,→ 左子树;

2015-10-25 16:13:58 2507

原创 算法导论13章红黑树 思考题总结

13-1 (持久动态集合) 有时在算法的执行过程中我们会发现在更新一个动态集合时,需要维护其过去的版本。我们称这样的集合为持久的(persistent)。实现持久集合的一种方法是每当改集合被修改时,就将其完整地复制下来,但是这种方法会降低一个程序的执行速度,而且占用过多的空间。有时候,我们可以做得更好些。       考虑一个有 INSERT、DELETE和SEARCH操作的持久集合 S,我们

2015-10-20 11:40:25 1490

原创 算法导论13.4删除 练习总结

13.4-1 在执行 RB-DELETE-FIXUP 之后,证明:树根一定是黑色的。ANSWER:case 1:要进入循环,则 x.color = BLACK,且 x ≠ T.nil,所以不可能从case 1退出循环,所以必定会进入case 2,3,4。case 2:w = x.p.right,则 w 不可能是T.root;如果从case 2退出循环,则 x = T.root,则23行

2015-10-18 19:24:29 3309

原创 算法导论13.3插入 练习总结

13.3-1 在 RB-INSERT 的第 16 行,将心插入的结点 z 着为红色。注意到,如果将 z 着为黑色,则红黑树的性质 4 就不会被破坏。那么为什么不选择将 z 着为黑色呢?ANSWER:为了保持性质5,令红黑树的黑高不变。13.3-2 将关键字 41、38、31、12、19、8 连续地插入一棵初始化为空的红黑树之后,试画出该结果树。ANSWER:

2015-10-15 23:27:03 3486

原创 算法导论13.2旋转 练习总结

13.2-1 写出RIGHT-ROTATE 的伪代码。ANSWER:伪代码:RIGHT_ROTATA: y = x.left x.left = y.right if y.right ≠ T.nil: y.right.p = x y.p = x.p if y.p == T.nil: T.root = y else

2015-10-15 10:14:00 2116

原创 算法导论13.1红黑树的性质 练习总结

13.1-1 按照图13-1(a) 的方式,画出关键字集合{1,2,... ,15 }上高度为 3 的完全二叉搜索树。以三种不同方式想图中加入 NIL 叶结点并对各结点着色,使所得的红黑树的黑高分别为 2,3 和 4。ANSWER:如上图的二叉树(省略哨兵 T.nil )黑高为 2 :令深度为 0,2 的结点为黑,深度为 1,3 的结点为红。            3 :令

2015-10-10 16:57:08 3440 5

原创 LintCode -- 不同的二叉查找树(python-O(n)时间复杂度)

LintCode -- unique-binary-search-trees(不同的二叉查找树)原题链接:http://www.lintcode.com/zh-cn/problem/minimum-path-sum/给出 n,问由 1...n 为节点组成的不同的二叉查找树有多少种?您在真实的面试中是否遇到过这个题? Yes

2015-10-09 23:53:18 837

原创 算法导论12章二叉搜索树 思考题总结

12-1 (带有相同关键字的二叉搜索树) 相同关键字给二叉搜索树的实现带来了问题。a. 当用TREE-INSERT 将 n 个其中带有相同关键字的数据插入到一棵初始为空的二叉搜索树中,其渐进性能是多少?ANSWER:当遇到不小于父结点的关键字时,是插入到右子树,所以当插入n个全部相同或者有序的关键字时,会变成链表,最坏情况的时间复杂度为O(n^2),树的高度是O(n)。

2015-10-09 00:34:41 2554

原创 算法导论12.4随机构建二叉搜索树 练习总结

12.4-1 证明等式(12.3)。ANSWER:证明:                                                                                            此处将用不寻常的证明方法:引入一个新问题,利用两个不同解法的等效性证明等式(12.3)12.4-3 说明含有 n 个关键字的随机

2015-10-08 15:09:58 2427

原创 算法导论12.3插入和删除 练习总结

12.3-1 给出 TREE-INSERT 过程的一个递归版本。ANSWER:伪代码:TREE-INSERT(root, z) if root.key < z.key if root.right == NIL root.right = z z.p = root else TREE-

2015-10-06 10:29:47 2180 3

原创 LintCode -- 最小路径和

LintCode -- minimum-path-sum(最小路径和)原题链接:http://www.lintcode.com/zh-cn/problem/minimum-path-sum/给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径。样例注意你在同一时间只能向下或者向右移动一步

2015-10-05 15:21:58 2312

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除