《算法导论 第3版》第1章 笔记&习题答案

1.1 算法

什么是算法

​ 若对每个输入实例,算法都以正确的输出停机,则称该算法是正确的,并称正确的算法解决了给定的计算问题。

​ 不正确的算法对某些输入实例可能根本不停机。

扩展参考图灵停机问题(P616)

问题描述:判断一个程序是否会在有限时间内结束运行。

​ 这个答案是否定的,这里涉及逻辑数学中可计算性理论。

参考教材

《离散数学及其应用 第8版》 第13章 计算模型

《计算机程序的构造和解释 第2版》 第4章 元语言抽象


算法解决哪些问题:

  • 互联网上的网站能够管理和处理海量数据
  • 电子商务中公钥密码数字签名,以数值算法数论为基础
  • 最短路径问题
  • 最长公共子序列问题(LCS),用到动态规划(DP)
  • 机械设计中部件组成,涉及拓扑排序
  • 给定平面上n个点,求包含这些点的最小凸多边形(MCP)
  • 数据压缩大多项式与整数相乘,涉及离散傅里叶变换,相关有效的算法——快速傅里叶变换

难题:NP完全问题

NP完全问题的3个特点:
  1. 不曾找到一个NP完全问题的有效算法没有人能证明NP完全问题确实不存在有效算法

  2. NP完全问题具有一个非凡的性质:如果任何一个NP完全问题存在有效算法,那么所有NP完全问题都会存在有效算法;

    即“一个有解,个个有解

  3. 有几个NP完全问题类似于(但又不完全同于)一些有些已知有效算法的问题

    需要采用近似算法解决问题

计算机科学家迷恋于如何通过对问题陈述的一个小小的改变来很大地改变其已知最佳算法的效率。


计算并行性

计算并行性提出的原因:

芯片功率密度随时钟速度超线性增加,一旦时钟速度变得足够快,芯片将有熔化的危险

CPU不能无限加速

解决方案:

​ 芯片被设计成包含不止一个而是几个处理的核。故设计算法时必须考虑并行性。

硬件上多核并行,软件上多线程并行线程概念的提出就是为了在软件层面上解决计算并行性问题


1.2 作为一种技术的算法

​ 算法是当代计算机中使用的大多数技术的核心。

​ 是否具有算法知识与技术的坚实基础是区分真正熟练的程序员和初学者的一个特征。

Techniques for controlling the complexity of these large systems. In some sense, that’s really what computer science is about.

–Harold Abelson (SICP的作者)

课后习题答案

参考答案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
算法导论 第3》是一本经典的计算机科学教材,由Thomas H.Cormen、Charles E.Leiserson、Ronald L.Rivest和Clifford Stein合著,主要介绍了算法设计与分析的基本原理和技巧。 这本教材分为六个部分,共29。第一部分概述了算法设计与分析的基本概念和方法。第二部分介绍了基本的排序和选择算法,包括插入排序、归并排序、堆排序等。第三部分讨论了数据结构,包括栈、队列、二叉树等,以及各种基本数据结构的实现和应用。第四部分重点介绍了动态规划算法和贪心算法,涵盖了最长公共子序列、最优二叉查找树等问。第五部分深入讲解了图算法,包括最短路径、最小生成树等。第六部分介绍了一些高级主,如NP完全性以及近似算法。 每一都包含了大量的例子和习题,这些习题有助于读者巩固知识,并提供了解决实际问的思路。此外,书中还有丰富的附录和参考资料,供读者进一步学习和探索。 《算法导论 第3》有着简洁明了的表达和深度而完整的内容,适合作为大学本科生和研究生学习计算机科学基础的教材。无论是作为算法入门的起点,还是作为算法设计与分析的参考书,都具有很高的价值。 总之,《算法导论 第3》是一本经典权威的算法教材,涵盖了算法设计与分析的基础知识和方法,并提供了大量的例子和习题,对计算机科学相关专业的学生和从业者来说,是一本不可多得的学习资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值