《Python算法的奇妙之旅》结合Python语言,从基础算法讲起,逐步深入6种常用算法思想,每种算法思想都佐以大量生动有趣的案例,让读者在学习Python语法及算法的同时,意识到算法的重要性,继而对算法产生浓厚的兴趣。
《Python算法的奇妙之旅》共11章,分为2篇。第1篇基础知识,主要介绍Python、算法、数据结构、时间复杂度和空间复杂度等关键的基础概念,以及十大排序算法,让读者对算法有一个初步的了解;第2篇开始算法之旅,结合40多个典型案例及其对应的100多种解题思路与方法,介绍遍历法、迭代法、递归法、回溯法、贪心法和分治法6种算法思想,涉及算法的基本思想、关键特征、解题步骤和框架等。
《Python算法的奇妙之旅》内容通俗易懂,案例丰富,实用性强,特别适合对Python语言和算法感兴趣的入门与进阶读者阅读,也适合C、C 、Java和PHP程序员及其他编程爱好者阅读,另外还适合作为相关院校和培训机构的教材。
40多个典型案例、100多种解题思路与方法、6种常用算法思想。
培养编程兴趣,拓展编程思维,提高编程和算法设计能力。
每个案例都用Python语言实现,专为算法初学者量身打造。
注重基础:对常用算法的概念、特征、应用和设计策略做详细介绍。
讲解透彻:对常用算法涉及的各种数据结构类型进行原理性分析。
案例丰富:用幽默风趣的语言介绍40多个典型案例及涉及的算法。
趣味性强:选取的案例趣味性强,可以极大地提高读者的编程兴趣。
代码详尽:每个案例都给出详细的代码,并给出流程图或示意图。
随着人工智能和大数据时代的到来,数据分析越来越流行,自动化迅速崛起,这带火了得天独厚的Python语言。从小型创业公司到如日中天的大型企业,从战略规划的新兴产业到生机勃勃的成长产业乃至举足轻重的支柱产业,都对Python技术人员青睐有加。不论你所在的行业是自媒体、医疗、政务、金融还是其他新兴行业,也不论你从事的工作是开发、维护、运营、产品还是其他新兴岗位,你都能看到Python算法的身影。在许多互联网公司中,从业人员能熟练掌握Python并融会贯通各种算法的思路,会成为他们的一个加分项。
目前图书市场上关于Python算法的相关图书不少,但真正从实际应用出发,通过各种算法思想和案例来指导读者提高算法设计能力的图书却凤毛麟角。《Python算法的奇妙之旅》以实战为主旨,通过6种常用算法思想,并佐以典型案例,帮助读者全面、深入、透彻地掌握各种典型算法的思路和应用,提高读者解决实际问题的能力。
《Python算法的奇妙之旅》特色
1.对Python算法涉及的概念和数据结构做原理性分析
《Python算法的奇妙之旅》从一开始便对Python算法的概念、特征、应用和设计策略做了基本介绍,并对涉及的各种数据结构类型进行原理性分析,帮助读者夯实基础,为后续学习算法思想和演练典型案例打好基础。
2.结合大量典型案例介绍Python热门算法的思想
《Python算法的奇妙之旅》结合大量案例介绍排序、遍历、迭代、递归、回溯、贪心和分治等热门算法的思想,并详解水仙花数、埃及分数、鸡兔同笼、阶乘算法、辗转相除法、斐波那契数列、汉诺塔问题、八皇后问题和背包问题等典型案例的求解过程。
3.分类驱动,逻辑性强
《Python算法的奇妙之旅》首先介绍十大排序算法和10种数字相关的算法,然后介绍遍历、迭代、递归、回溯、贪心、分治算法思想,这些都是Python算法学习必须要掌握的知识。书中还对各类算法的异同进行了对比,帮助读者对算法进行逻辑梳理。
4.案例典型,实用性强
《Python算法的奇妙之旅》详解40多个典型案例及其对应的100多种解题思路与方法,它们均来自笔者在学习、生活和工作中的亲身体验和奇思妙想,具有很高的应用价值和参考性。这些案例使用不同的思想和解法组合实现,便于读者融会贯通地理解《Python算法的奇妙之旅》中介绍的算法,读者对这些案例稍加修改,便可应用于实际开发中。
5.注释详细,图示丰富,容易理解
《Python算法的奇妙之旅》中的案例源代码逐行进行了详细的注释,并给出流程图或示意图,便于读者直观地理解所讲内容,从而提高学习效率。
6.提供完善的技术支持和售后服务
《Python算法的奇妙之旅》提供专门的技术支持邮箱(hzbook2017@163.com)与微信公众号,读者在阅读本书的过程中若有任何疑问,可以通过邮箱或公众号获得帮助。
《Python算法的奇妙之旅》内容
第1篇 基础知识
本篇涵盖第1~4章。第1~3章主要介绍Python、算法、数据结构、时间复杂度和空间复杂度等基础概念,其中涵盖整型、布尔值、字符串、列表、元组、字典、集合等数据类型,以及表、树、图等数据结构;第4章主要介绍十大排序算法,包括冒泡排序、快速排序、直接插入排序、希尔排序、简单选择排序、堆排序、归并排序、计数排序、桶排序和基数排序。
第2篇 开始算法之旅
本篇涵盖第5~11章。第5章主要介绍10种与数字相关的算法,包括素数、完美数、自守数、快乐数、水仙花数、埃及分数、阶乘算法、辗转相除法、兔子序列和数独,旨在表达数字之美;第6~11章主要介绍六种常用算法思想,包括遍历法、迭代法、递归法、回溯法、贪心法和分治法,涉及其基本思想、关键特征、解题步骤和算法框架等内容,讲解时以6种算法思想为依据,列举40多个典型案例及其对应的100多种解题思路和方法。
《Python算法的奇妙之旅》读者
准备从事数据分析、AI和算法等工作的人员;
Python、C 、Java和PHP等程序员;
数据专员和数据分析工程师;
运营、产品和研发人员;
对算法有浓厚兴趣和需求的人员;
广大数学爱好者;
希望提升逻辑思维的人员;
高等学校相关专业的学生;
专业培训机构的学员。
配书资源获取方式
《Python算法的奇妙之旅》涉及的所有源代码都需要读者自行下载。请在机械工业出版社华章分社(www. hzbook.com)上搜索到本书,然后单击资料下载按钮,即可在本书页面上找到下载链接。
售后支持
读者阅读《Python算法的奇妙之旅》时若有疑问,可以发电子邮件(邮箱地址见前文)获得帮助,也可以通过笔者的微信公众号提出,笔者会不定期解答。另外,书中若有疏漏和不当之处,也请读者及时反馈,以便后期修订。
王小川 现任某500强国有企业的数据分析兼系统管理工程师。有5年的数据分析和数据库管理经验,擅长Python爬虫技术和算法,以及pandas、NumPy和sklearn等第三方库,能熟练使用TensorFlow框架。主要研究方向包括数据挖掘、机器学习和办公自动化等,对数据获取和应用有丰富的实战经验与独到的见解。
前言
第1篇 基础知识
第1章 概述 2
1.1 书本简介 4
1.1.1 书本涉及的内容 4
1.1.2 书本不涉及的内容 5
1.2 本书的优势 5
1.3 需要做的准备工作 6
1.4 本章小结 10
第2章 何为算法 11
2.1 什么是算法 11
2.1.1 算法的概念 11
2.1.2 算法的特征 12
2.1.3 算法的应用 12
2.1.4 算法的设计策略 13
2.2 空间复杂度和时间复杂度 13
2.2.1 空间复杂度 13
2.2.2 时间复杂度 15
2.3 算法趣闻 18
2.4 本章小结 20
第3章 数据结构是算法的骨骼 21
3.1 Python的基本数据类型 21
3.1.1 int类 22
3.1.2 bool类 22
3.1.3 str类 23
3.1.4 list类 28
3.1.5 tuple类 29
3.1.6 dict类 31
3.1.7 set类 33
3.1.8 小结 35
3.2 数据结构线性表 36
3.2.1 一般线性表 36
3.2.2 受限线性表 41
3.3 数据结构树 44
3.4 数据结构图 47
3.4.1 按存储路径方向分类 48
3.4.2 按存储结构分类 49
3.5 本章小结 50
第4章 十大排序算法 52
4.1 非线性时间比较类排序 52
4.1.1 冒泡排序 53
4.1.2 快速排序 55
4.1.3 直接插入排序 59
4.1.4 希尔排序 65
4.1.5 简单选择排序 70
4.1.6 堆排序 72
4.1.7 归并排序 79
4.2 线性时间非比较类排序 84
4.2.1 计数排序 84
4.2.2 桶排序 87
4.2.3 基数排序 90
4.3 本章小结 92
第2篇 开始算法之旅
第5章 数字的魅力 94
5.1 情有独钟的素数 94
5.2 卓绝罕有的完美数 98
5.3 洁身自好的吴柳 103
5.4 自恋成狂的水仙花数 106
5.5 回归本真的快乐数 108
5.6 古埃及的神秘智慧Ⅰ 114
5.7 极限膨胀的阶乘Ⅰ 118
5.8 RSA加密的钥匙Ⅰ 121
5.9 疯狂繁殖的兔子Ⅰ 124
5.10 数独是如此简单Ⅰ 128
5.11 本章小结 129
第6章 遍历算法 131
6.1 黑板上的排列组合 131
6.2 鸡兔同笼 137
6.2.1 抬起脚来 137
6.2.2 万变不离其宗 142
6.3 我要的是独一无二 144
6.4 鸳鸯巧促成双对Ⅰ 156
6.5 二叉树的遍历 159
6.5.1 前序遍历 163
6.5.2 中序遍历 165
6.5.3 后序遍历 167
6.5.4 层次遍历 169
6.5.5 知二求一 171
6.6 迷宫最短路径问题 172
6.7 本章小结 176
第7章 迭代算法 178
7.1 猴子摘桃 179
7.2 阿米巴分裂 183
7.3 谁才是真正的明星 185
7.4 数独是如此简单Ⅱ 186
7.5 浅谈迭代与遍历 195
7.6 本章小结 195
第8章 递归算法 197
8.1 极限膨胀的阶乘Ⅱ 197
8.2 RSA加密的钥匙Ⅱ 198
8.3 疯狂繁殖的兔子Ⅱ 199
8.4 汉诺塔通关攻略 201
8.5 握握手,好朋友 205
8.6 一起去看场电影吧 208
8.7 请展示所有排列 212
8.8 我该带走什么 217
8.9 小青蛙跳跳跳 223
8.10 浅谈递归与迭代 228
8.11 本章小结 230
第9章 回溯算法 231
9.1 素数环问题 232
9.2 全排列问题Ⅰ 235
9.3 八皇后问题 237
9.4 往事成风,我该如何选择Ⅰ 241
9.5 迷宫逃亡 244
9.6 骑士周游列国Ⅰ 247
9.7 浅谈回溯与遍历、递归及迭代 251
9.8 本章小结 253
第10章 贪心算法 255
10.1 古埃及的神秘智慧Ⅱ 256
10.2 骑士周游列国Ⅱ 259
10.3 往事成风,我该如何选择Ⅱ 263
10.4 你要的全拿走 266
10.5 敢问路在何方 269
10.6 克鲁斯卡尔算法 274
10.7 浅谈贪心与迭代、回溯及遍历 279
10.8 本章小结 280
第11章 分治算法 282
11.1 鸳鸯巧促成双对Ⅱ 283
11.2 全排列问题Ⅱ 289
11.3 你能找到它吗 290
11.4 你们都被我包围了 294
11.5 最大连续子序列之和 303
11.6 浅谈分治与递归、遍历及贪心 307
11.7 本章小结 308