Introduction to Algorithms 3rd
zhumeng1989
这个作者很懒,什么都没留下…
展开
-
伪代码排版包 clrscode3e——Introduction to Algorithms Third Edition
官网上厚道的都把伪代码排版的 LaTeX2e 包 clrscode3e 给了出来。 为了享受专业完美带来的快感,你需要知道 LaTeX,对于Windows平台,官网建议用 proTeXt。proTeXt 包括了MiKTeX 和 TeXstudio。当然,你只需要下载 proTeXt ,安装时选择将两个软件都装好就行了。 clrscode3e 包安装: 根据自己的安装位置在原创 2012-09-08 16:56:27 · 3410 阅读 · 0 评论 -
2. Exercises and Problems——Introduction to Algorithms Third Edition
Exercises 2.1-all. 略。(除了提到了 linear-search, 没有值得记的东西) Exercises 2.2-2. selection-sort 运行时间对于所有情况都是 Θ(n^2)。其比较次数:(1+2+3+...+n-1) = n(n-1)/2 = Θ(n^2)。 Exercises 2.2-3. linear-search 平均的比较次数原创 2012-09-11 19:11:50 · 1392 阅读 · 0 评论 -
5. Exercises and Problems——Introduction to Algorithms Third Edition
Exercises 5.1-3. 因为Pr{x=0 and y=1} = Pr{x=1 and y=0} = (1-p)*p,所以返回0 或 1的概率相等,均为1/2。最后要求其时间复杂度,等价于求算法迭代次数的期望。在每一次迭代中,成功的概率为2(1-p)*p,类似于伯努利试验,直到一次成功的试验次数符合几何分布,并且成功的期望次数为1/(2(1-p)*p),时间复杂度为:Θ(1/原创 2012-09-25 20:31:04 · 1079 阅读 · 0 评论 -
4. Divide-and-Conquer——Introduction to Algorithms Third Edition
Chapter 4. Divide-and-Conquer 要点:Divide-and-Conquer, Maximum-Subarray, Strassen's Matrix Multiplication, Recurrences. (分而治之,最大子集,矩阵乘,递归方程) Divide-and-Conquer 本章引入非常重要的一个算法设计思想:Divide-and-Conquer原创 2012-09-15 20:48:22 · 1071 阅读 · 0 评论 -
4. Exercises and Problems——Introduction to Algorithms Third Edition
Exercises 4.1-4. 参考 Programming Pearls Column 8 maxsum3,意思是只考虑大于零的和,如果数组均小于零,那么输出区间为空,和为零。而算法导论实现可以输出这些负数中最大的那个数,而且区间也只包含这个负数,即这种方法不会输出空集。CODE Exercises 4.1-5. 线性时间内解决 Maximum-Subarray 问题原创 2012-09-18 20:09:23 · 2239 阅读 · 3 评论 -
写在前面的话——Introduction to Algorithms Third Edition
我近期在读 Introduction to Algorithms, Third Edition,英文版。已经大致学习了一遍,现在计划更细致读第二遍并做笔记总结。这个系列笔记将会完整呈现我个人的所想所思,更重要的是我希望能够吸引更多的人进来讨论,共同成长。 如有错误,欢迎指出与讨论。 by Zhu Meng E-mail:zhumeng1989(at)gmail.com 源代码托管:GitH原创 2012-09-08 13:59:42 · 2923 阅读 · 3 评论 -
C. Counting and Probability——Introduction to Algorithms Third Edition
Appendix C. Counting and Probability 在动手写这部分的时候拖了很久,一是需要时间回顾这部分知识,二是怕写不好。所以有不妥的地方请指出,另外感觉知识最好是能学到内化,学成一种感觉,就像概率论,当理解到其本质以后,有些东西都是自然而然的结果。 这部分讲了基本的组合数学和概率论知识,尤其是方便书中概率分析和随机算法的叙述。C.1 讲了基本的计数理论以及排列组合,C原创 2012-09-24 21:19:48 · 1586 阅读 · 0 评论 -
2. Getting Started——Introduction to Algorithms Third Edition
Chapter 1. The Role of Algorithms in Computing 没什么好说的,一些概览性的语言,自己看即可。 Chapter 2. Getting Started. 要点:Insertion-Sort, Merge-Sort, Analyzing algorithms, Loop invariant. (插入排序,合并排序,算法分析,循环不变量) Inser原创 2012-09-08 21:01:18 · 1052 阅读 · 0 评论 -
3. Growth of Functions——Introduction to Algorithms Third Edition
Chapter 3. Growth of Functions 函数增长率。要考虑一个算法的效率,当输入数据大到其运行效率可以通过时间函数的增长率描述的时候,我们称之为算法的渐近线效率。这样,渐近线效率高的算法通常是最快的算法,小规模的输入数据除外。这里引入渐近线符号(asymptotic notation)来描述算法运行时间,这种符号也可以用来描述算法占用内存的大小。(即通常汉语说的,时间复杂度原创 2012-09-12 18:32:19 · 1077 阅读 · 0 评论 -
5. Probabilistic Analysis and Randomized Algorithms——Introduction to Algorithms Third Edition
Chapter 5. Probabilistic Analysis and Randomized Algorithms 本章围绕 Hiring Problem(雇用问题)展开讨论,雇用问题是指在依次求职的面试者中,选出比当前在职者优秀的并替换之,问平均替换的次数。从程序上来说就是扫一遍数组的问题,但结合实际情况辞退一个人要比面试的代价高得多,因此问题的注意力集中在替换的次数而非面试的次数。类比于原创 2012-09-22 20:11:26 · 1246 阅读 · 1 评论