《Python Algorithm》读书笔记

更多

1.书籍信息

书名:Python Algorithms – Mastering Basic Algorithms in the Python Language
作者:Magnus Lie Hetland
出版社:Apress
ISBN:978-1-4302-3237-7
页数:324

2.纸张、印刷与排版

看的电子书,无法评论纸张和印刷。
字体,行、段间距偏小。非正文区分度高。

3.勘误

有,未记录。

4.笔记与评价

阅读级别:细读。
推荐级别:可选其他书籍。

这本书断断续续看了半个多月吧,看得很慢。一方面是因为看的是英文书,很多词不认识(主要是术语和俚语);另一方面是因为看的是算法书,偏向我不怎么好的数学。

这本书不知道是什么时候在网上下载的,因为是用Python来讲算法,所以就拿来看了。本人对数学理解能力一般,之前也没有系统的学过算法(呃,计算机系不开算法课,却去开一些类似机械制图、金工实习的课是不是很奇怪!),所以一直想找本书来系统地看一下算法。尽管之前买了《算法(第五版)》影印版和《算法概论》影印版,但一直也没有去看。好,扯远了。

看本书之前,实际上我对算法没有个系统的认识,对于诸如贪心法、分治法这些词汇感觉很庞大,一直没去搞懂他们是什么。看了书之后,才知道这些没有我曾经想象的遥不可及,实际上很多知识在信息论、数据结构、离散数学、运筹学等课程中已经有所涉猎了,只是这些课中没有提到这些词汇罢了。当然,很多算法我都已经忘了。

本书使用Python讲解算法,不过实际上代码在本书中占的篇幅并不算大,也没有对标准库和第三方库的一些相关类/方法/函数/数据结构进行详细的讲解。尽管极少出现公式,但对算法的文字描述占用了大量的篇幅,这样大费口舌满页密密麻麻的文字(恩,对了,文字中还有大量的括号;以及只有首先没有然后的句子),还不如把公式写出来可能更容易理解了,即便我不太喜欢公式。这些大量的文字,有时却没能把我对该算法最关心的东西讲出来,最终又花费了大量时间去google/百度/wiki。

对我而言,我希望看到的讲解方式应当是:算法步骤、公式、图、简要的概述,清楚的代码实现,应用等。我并不关心算法的证明、正确性验证等方面的内容,只需要让我明白算法是怎么运转、用实例解释为什么大概就能满足我的需求了。恩,我对时间复杂度的计算也没有那么细致的要求。

本书讲解的算法还是比较基础的一些算法(尽管很多我并不熟悉,或者已经忘了吧)。结构如下:

第一章:引言
第二章:讲解一些基础知识,包括渐进表示、树和图等。
第三章:求和、排列组合、递归等。
第四章:归纳、递归、归约,不变与正确性,张驰法等。
第五章:遍历(DFS、BFS),强连通分量等。
第六章:分治法(二分法、最近点对、凸包、最大切片、树平衡)等。
第七章:贪心法(背包问题、哈夫曼算法、最小生成树)等。
第八章:动态规划(DAG的最短路径、LIS、LCS、背包问题)等。
第九章:最短路径(Bellman-Ford、Dijkstra、Johnson、Floyd、A*)等。
第十章:网络流(二部图匹配、不相交路径、最大流、最小割、最小费用最大流)等。
第十一章:P、NP、NPC。本章基本无代码。
附录A:相关的Python库。
附录B:本书涉及的问题和算法。
附录C:图相关知识。
附录D:习题答案。

实际上,每章的讲解都会配有图片和代码的,但是给我带来的帮助却不大。尽管代码是Python代码,但和《集体智慧编程》那样的Python代码使用差距太大,我都没有怎么仔细看。

本书的标题都很生动,甚至会出现像“Not in Kansas Anymore?”这句《绿野仙踪》的台词(恩,这句的出处我是百度到的),让人初读标题时感觉不知所措,完全无法知道这一章/节在讲什么。好吧,在写脑图的时候,翻译这些标题时,按照自己的理解做了一些修改,所以下面的脑图里会看到诸如我喜欢的《在动物园散步才是正经事》,也会看到最近很火的“小伙伴们”。

本书中每章都附有习题,不过时间关系,我都没有做。附录D有这些习题的讲解。

尽管看了很久,实际上还有很多地方没有看明白,所以下面的脑图中应该会出现很多错误。

综上,如果你的英语不错,并且数学也不错的话,可以来阅读本书。否则,我觉得还是找一些中文的教材或网络资料先看明白吧。另外,不要对本书的Python代码抱有太多希望,本书的代码并没有对我理解算法有多大加深。

5.思维导图

2.The Basics
2.基础

3.Counting 101
3.Counting 101

4.Induction and Recursion … and Reduction
4.归纳、递归、归约

5.Traversal: The Skeleton Key of Algorithmics
5.遍历:算法的万能钥匙

6.Divide, Combine, and Conquer
6.分治法

7.Greed Is Good? Prove It!
7.贪婪是好的?证明它!

8.Tangled Dependencies and Memoization
8.纠缠的依赖性和记忆

9.From A to B with Edsger and Friends
9.与Edsger和小伙伴们从A到B

10.Matchings, Cuts, and Flows
10.匹配,割,流

11.Hard Problems and (Limited) Sloppiness
11.疑难问题和(有限的)马虎

思维导图下载:
百度云网盘下载(图片版)
百度云网盘下载(mmap)

本文内容遵从CC3.0版权协议,转载请注明:转自Pythoner

本文链接地址:《Python Algorithm》读书笔记

    • inside
    • 2014/01/04 1:45下午

    好认真的总结!必须赞 [em_zan] 一个!!

  1. 暂无 Trackback

[em_zan] [em_yali] [em_xiao] [em_xhj] [em_tucao] [em_tu] [em_tiaopi] [em_sx] [em_sdz] [em_sbq] [em_mobai] [em_kzh] [em_ku] [em_ksh] [em_keai] [em_jiong] [em_jing] [em_hx] [em_han] [em_ganga] [em_daxiao] [em_cool] [em_chi] [em_bu] [em_bizui] [em_ai]

return top