#小曾曾读书笔记#《算法图解》一本非常有趣简单的算法小册,讲了基本上能在简历里看到的各种常规的算法原理和Python代码或伪代码实现方法。如果想要了解学习算法的,这本书将是首选,它也成功激起了自己要深入了解算法的意思(目前已经开始了机器学习的探索,且我相信万事开头难,只要开始了就很加分了)。
最后,梳理下对自己还挺有用的本书知识点:
1、算法运行时间用大O表示法表示。二分查找所需时间O(log n),简单查找所需时间O(n)。
2、数组的读取速度很快;链表的插入和删除速度很快。
3、递归就是调用自己;递归里面的两种条件——基线条件和递归条件,类似归纳算法的证明过程。基线条件:函数不再调用自己的条件;递归条件:函数调用自己。
4、分而治之:把一个复杂的算法问题按照某种方法分成等价的规模较小的若干问题。
5、广度优先搜索是一种用于图的查找算法,可帮助回答两类问题。
❑ 第一类问题:从节点A出发,有前往节点B的路径吗?
❑ 第二类问题:从节点A出发,前往节点B的哪条路径最短?
6、狄克斯特拉算法用于在加权图中查找最短路径,包含四个步骤:
(1) 找出最便宜的节点,即可在最短时间内前往的节点。
(2) 对于该节点的邻居,检查是否有前往它们的更短路径,如果有,就更新其开销。
(3) 重复这个过程,直到对图中的每个节点都这样做了。
(4) 计算最终路径。
7、贪婪算法很简单:每步都采取最优的做法。动态规划可在给定约束条件下找到最优解。
8、KNN来做两项基本工作——分类和回归:❑ 分类就是编组;❑ 回归就是预测结果(如一个数字)。