算法导论读书笔记 第一部分

本文深入浅出地介绍了算法在计算中的作用及其发展历程,重点解析了算法基础,包括循环不变式的正确性和递归的三个步骤。同时,探讨了函数增长的概念,详细解释了表示复杂度的记号和常用符号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写之前罗嗦两句,这本书看起来好厚啊,字看起来好小啊,内容会不会很多啊,我能不能坚持下去啊,就算坚持下去会不会有预期的收获啊……

先在心里给自己一巴掌再说。这是我选择的道路,就是再难走,也要咬牙走完了再发牢骚和怨天尤人。

那就酱,开始吧。

第一章 算法在计算中的作用

 综述,发展历程,实践中的作用等等。


第二章 算法基础

第二章没有太多的干货,大体介绍了一下本书要用的伪代码的编程原则,引用了排序数字这样一个典型例子,并介绍了一下两个排序用的方法:增量方法和分治法。这里稍微说一下其中涉及到的两个原则。

循环不变式的正确性:

  1. 初始化:循环的第一次迭代前,它为真。
  2. 保持:如果循环的某次迭代之前它为真,那么下次迭代之前它仍为真。
  3. 中止:再循环中止时,不变式为我们提供一个有用的性质,该性质能证明算法是正确的。

这三点看起来很眼熟,与高中所学的归纳法很想,但是有些区别,主要在于当时学的演绎推理过程没有验证结尾的合理性,我觉得,这是因为演绎推理是为了证明一个规律的合理性,所以提供了起点和循环的动力就可以达到目的。而要证明循环不等式是要抽象条件,获得结果。所以我们不仅要证明我们抽象出的规律是正确的,还要证明这个规律使用正确(在正确的位置得到结论)。

递归的三个步骤:

  1. 分解原问题为若干子问题,这些子问题是原问题规模较小的实例。

  2. 解决这些子问题,递归求解,若是问题规模较小,则直接求解。

  3. 合并这些字问题的解 成为原问题的解。

 


第三章 函数的增长

本章主要讲了表示复杂度的记号和一些常用的符号和函数

  1. 渐进紧确界:f\left ( n \right )=\Theta \left ( g\left ( n \right ) \right )           类似于a=b
  2. 渐进上界:f\left ( n \right )=O \left ( g\left ( n \right ) \right )              类似于a\leqslant b
  3. 渐进下界:f\left ( n \right )=\Omega \left ( g\left ( n \right ) \right )               类似于a\geq b
  4. 非渐进紧确上界:f\left ( n \right )=o\left ( g\left ( n \right ) \right )     类似于a< b
  5. 非渐进紧确下界:f\left ( n \right )=\omega \left ( g\left ( n \right ) \right )    类似于a> b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值