Grokking Algorithms 算法图解 一本基于Python的算法科普读本

来源:互联网 发布:黑龙江统计局数据库 编辑:程序博客网 时间:2024/06/04 18:55

Grokking Algorithms算法图解是由美国软件工程师Aditya Bhargava写的一本算法科普读物,由图灵教育引进,组织翻译之后17年三月份正式出版,目前来说知名度还不是很高。


毕设做差不多之后,我买了这本书来看。第一感觉,书很薄,总共也才不到两百页。全书共分为11章,分别是

1 算法简介

这一章以一个非常简单且熟知的例子,二分查找来作为起步,介绍了时间负责度的概念,稍微提了一下旅行家问题。

2 选择排序

这一章以选择排序为例子,简单介绍了内存的工作原理。着重介绍了数组和链表。讲了半天数组和链表的区别,其实是在说顺序存储模式与链式存储模式的区别,数组采用的是顺序存储模式,占用的内存空间是连续的,优点是支持随机访问,这在很多应用场景中非常重要,但是插入与删除操作比较困难,同时由于占用内存连续,还可能造成内存碎片化。链表采用的是链式存储结构,不要求连续占用内存,并且插入和删除操作都非常方便,缺点就是不能随机访问,只能顺序访问。作者提了一个问题,Facebook记录用户名该用什么,数组or链表(当然Facebook用的既不是数组也不是链表)?还挺有思考价值的,最后提出了一种链表数组这种混合数据。

3 递归

递归思想在很多同学入门的时候还是挺难理解的,这里作者用了个很简单的例子清晰的表明了这个概念,但是不知道为何扯到了调用栈上去了……

4 快速排序

5 散列表

6 广度优先搜索

7 狄克斯特拉算法

8 贪婪算法

9 动态规划

10 K最近邻算法

11 接下来如何做


目前就看到第三章,后面内容后面再更新。

阅读全文
0 0