随笔分类 -  [3] 读书笔记-算法导论

知识的能量是在于,它能够因此而吸收更多的知识。
摘要:|概念回顾|当输入规模大到使只有运行时间的增长量级有关时,就使在研究算法的渐进效率。几个重要渐进记号的定义: Θ(g(n))={ f(n): 存在正常数c1,c2和n0,使对所有的n>=n0,有0<=c1g(n)<=f(n)<=c2g(n) } O(g(n))={ f(n): 存在正常数c和n0,使对所有n>=n0,有0<=f(n)<=cg(n) } Ω... 阅读全文
posted @ 2010-03-25 00:12 timebug 阅读(6556) 评论(2) 推荐(1) 编辑
摘要:|概念回顾|分治策略:将原问题划分成n个规模较小而结构与原问题相似的子问题;递归地解决这些小问题,然后再合并其结果,就得到原问题的解。分治模式在每一层递归上都有三个步骤:分解(Divde):将原问题分解成一系列子问题; 解决(Conquer):递归地解答各子问题。若子问题足够小,则直接求解; 合并(Combine):将子问题的结果合并成原问题的解。 注:⌈x⌉ 表示大于或等... 阅读全文
posted @ 2010-03-13 23:45 timebug 阅读(2962) 评论(2) 推荐(1) 编辑
摘要:|概念回顾|算法分析即指对一个算法所需要的资源进行预测。对于一个算法,一般只考察其最坏情况的运行时间,理由有三:一个算法的最坏情况运行时间是在任何输入下运行时间的一个上界。 对于某些算法来说,最坏情况出现得还是相当频繁的。 大致上看来,“平均情况”通常和最坏情况一样差。|习题解答|2.2-1 用Θ形式表示函数n³/1000-100n²-100... 阅读全文
posted @ 2010-03-10 20:47 timebug 阅读(1513) 评论(3) 推荐(1) 编辑
摘要:|概念回顾|循环不变式的三个性质:初始化:它在循环的第一轮迭代开始之前,应该是正确的。 保持:如果在循环的某一次迭代开始之前它是正确的,那么,在下一次迭代开始之前,它也应该保持正确。 终止:当循环结束时,不变式给了我们一个有用的性质,它有助于表明算法是正确的。伪代码中的约定:书写上的“缩进”表示程序中的分程序(程序块)结构。 while,for,repeat等循环结构和if... 阅读全文
posted @ 2010-03-09 21:58 timebug 阅读(1552) 评论(7) 推荐(1) 编辑
摘要:|概念回顾|计算机可以做的很快,但还不能是无限快。存储器可以做到很便宜,但不会是免费的。因此,计算时间是一种有限的资源,存储空间也是一种有限的资源。这些有限的资源必须被有效地使用,那些时间和空间上有效的算法就有助于做到这一点。|习题解答|1.2-1 给出一个实际的应用例子,它在应用这一层次上要求有算法性的内容。讨论其中所涉及算法的功能。数字证书:涉及RSA等公开密钥加密算法。算法功能:加密、解密或... 阅读全文
posted @ 2010-03-02 10:23 timebug 阅读(655) 评论(0) 推荐(0) 编辑
摘要:第一部分 基础知识第1章 算法在计算中的作用1.1 算法1.2 作为一种技术的算法第2章 算法入门2.1 插入排序2.2 算法分析2.3 算法设计第3章 函数的增长3.1 渐进记号 阅读全文
posted @ 2010-03-01 22:09 timebug 阅读(475) 评论(0) 推荐(0) 编辑
摘要:|概念回顾|算法(algorithm)就是定义良好的计算过程,它取一个或一组值作为输入,并产生出一个或一组值作为输出。数据结构(data structure)是存储和组织数据的一种方式,以便于对数据进行访问和修改。|习题解答|1.1-1 给出一个真实世界的例子,其中包括着下列的某种计算问题:排序,确定多矩阵相乘的最佳顺序,或者找出凸壳。排序:某班级期末成绩的排名情况 学校奖学金的合理评定 学校... 阅读全文
posted @ 2010-03-01 22:01 timebug 阅读(936) 评论(2) 推荐(0) 编辑