你也能看懂的python算法书_你一定能看懂的算法基础书《算法图解》

这是一本基于Python的算法基础书,有400多个示意图介绍算法执行过程。前三章帮助打基础,学习二分查找、数组链表、递归等;后续介绍应用广泛的算法,如分而治之、动态规划、贪婪算法等,还介绍了散列表、图算法、K最近邻算法等,最后概述适合进一步学习的算法。

你一定能看懂的算法基础书

代码示例基于Python

400多个示意图,生动介绍算法执行过程

展示不同算法在性能方面的优缺点

教会你用常见算法解决每天面临的实际编程问题

本书易于理解,没有大跨度的思维跳跃,每次引入新概念时,都立即进行诠释,或者指出将在什么地方进行诠释。核心概念都通过练习和反复诠释进行强化,以便你检验假设,跟上步伐。

书中使用示例来帮助理解。我的目标是让你轻松地理解这些概念,而不是让正文充

阅读路线图

本书前三章将帮助你打好基础。第1章:你将学习第一种实用算法——二分查找;还将学习使用大O表示法分析算法的速度。本书从始至终都将使用大O表示法来分析算法的速度。

第2章:你将学习两种基本的数据结构——数组和链表。这两种数据结构贯穿本书,它们还被用来创建更高级的数据结构,如第5章介绍的散列表。

第3章:你将学习递归,一种被众多算法(如第4章介绍的快速排序)采用的实用技巧。

根据我的经验,大O表示法和递归对初学者来说颇具挑战性,因此介绍这些内容时我放慢了脚步,花费的篇幅也较长。

余下的篇幅将介绍应用广泛的算法。问题解决技巧:将在第4、8和9章介绍。遇到问题时,如果不确定该如何高效地解决,可尝试分而治之(第4章)或动态规划(第9章);如果认识到根本就没有高效的解决方案,可转而使用贪婪算法(第8章)来得到近似答案。

散列表:将在第5章介绍。散列表是一种很有用的数据结构,由键值对组成,如人名和电子邮件地址或者用户名和密码。散列表的用途之大,再怎么强调都不过分。每当我需要解决问题时,首先想到的两种方法是:可以使用散列表吗?可以使用图来建立模型吗?

图算法:将在第6、7章介绍。图是一种模拟网络的方法,这种网络包括人际关系网、公路网、神经元网络或者任何一组连接。广度优先搜索(第6章)和狄克斯特拉算法(第7章)计算网络中两点之间的最短距离,可用来计算两人之间的分隔度或前往目的地的最短路径。

K最近邻算法(KNN):将在第10章介绍。这是一种简单的机器学习算法,可用于创建推荐系统、OCR引擎、预测股价或其他值(如“我们认为Adit会给这部电影打4星”)的系统,以及对物件进行分类(如“这个字母是Q”)。

接下来如何做:第11章概述了适合你进一步学习的10种算法。

各种符号。我还认为,如果能够回忆起熟悉的情形,学习效果将达到最佳,而示例有助于唤醒记忆。因此,如果你要记住数组和链表(第2章)之间的差别,只要想想在电影院找座位就坐的情形。另外,不怕你说我啰嗦,我是视觉型学习者,因此本书包含大量的图示。

本书内容是精挑细选的。没必要在一本书中介绍所有的排序算法,不然还要维基百科和可汗学院做什么。书中介绍的所有算法都非常实用,对我从事的软件工程师的工作大有帮助,还可为阅读更复杂的主题打下坚实的基础。祝你阅读愉快!

目录第 1 章 算法简介

第 2 章 选择排序

第 3 章 递归

第 4 章 快速排序

第 5 章 散列表

第 6 章 广度优先搜索

第 7 章 狄克斯特拉算法

第 8 章 贪婪算法

第 9 章 动态规划

第 10 章 K最近邻算法

第 11 章 接下来如何做

练习答案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值