首页>参考读物>计算机科学与技术>软件与程序设计

Python算法的奇妙之旅
作者 : 王小川 编著
出版日期 : 2022-08-12
ISBN : 978-7-111-71212-1
定价 : 89.80元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 320
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书结合Python语言从基础算法讲起,逐步深入六大算法思想,每个算法思想都佐以大量生动有趣的案例,让读者在学习Python语法及算法的同时,意识到算法的重要性,继而对算法产生浓厚的兴趣。
本书共11章,分为2篇。第1篇“基础知识”,主要介绍Python、算法、数据结构、时间复杂度和空间复杂度等关键的基础概念,以及十大排序算法,让读者对算法有一个初步的了解;第2篇“开始算法之旅”,结合40多个典型案例涵盖的100多个实例及其对应的100多种解题思路与方法,介绍遍历法、迭代法、递归法、回溯法、贪心法和分治法六大算法思想,涉及算法的基本思想、关键特征、解题阶段和框架等。
本书内容通俗易懂,案例丰富,实用性强,特别适合对Python语言和算法感兴趣的入门与进阶读者阅读,也适合C、C++、Java和PHP程序员及其他编程爱好者阅读,另外还适合作为相关院校和培训机构的教材。

图书特色

结合40多个典型案例及100多种解题思路与方法,详解6种常用算法思想,每个案例都用Python实现,专为算法初学者量身打造,培养编程兴趣,拓展编程思维,提高编程和算法设计能力

图书前言

随着人工智能和大数据时代的到来,数据分析越来越流行,自动化迅速崛起, “火”这带了得天独厚的 Python 语言。从小型创业公司到如日中天的大型企业,从战略规划的新兴产业到生机勃勃的成长产业乃至举足轻重的支柱产业,都对 Python 技术人员青睐有加。不论你所在的行业是自媒体、医疗、政务、金融还是其他新兴行业,也不论你从事的工作是开发、维护、运营、产品还是其他新兴岗位,你都能看到 Python 算法的身影。在许多互联网公司中,从业人员能熟练掌握 Python 并融会贯通各种算法的思路,会成为他们的一个加分项。
目前图书市场上关于 Python 算法的相关图书不少,但真正从实际应用出发,通过各种算法思想和案例来指导读者提高算法设计能力的图书却凤毛麟角。本书以实战为主旨,通过 6 种常用算法思想,并佐以典型案例,帮助读者全面、深入、透彻地掌握各种典型算法的思路和应用,提高读者解决实际问题的能力。
本书特色
1.对Python算法涉及的概念和数据结构做原理性分析
本书从一开始便对 Python 算法的概念、特征、应用和设计策略做了基本介绍,并对涉及的各种数据结构类型进行原理性分析,帮助读者夯实基础,为后续学习算法思想和演练典型案例打好基础。
2.结合大量典型案例介绍Python热门算法的思想
本书结合大量案例介绍排序、遍历、迭代、递归、回溯、贪心和分治等热门算法的思想,并详解水仙花数、埃及分数、鸡兔同笼、阶乘算法、辗转相除法、斐波那契数列、汉诺塔问题、八皇后问题和背包问题等典型案例的求解过程。
3.分类驱动,逻辑性强
本书首先介绍十大排序算法和 10 种数字相关的算法,然后介绍遍历、迭代、递归、回溯、贪心、分治算法思想,这些都是 Python 算法学习必须要掌握的知识。书中还对各类算法的异同进行了对比,帮助读者对算法进行逻辑梳理。
4.案例典型,实用性强
本书详解 40 多个典型案例及其对应的 100 多种解题思路与方法,它们均来自笔者在学习、生活和工作中的亲身体验和奇思妙想,具有很高的应用价值和参考性。这些案例使用不同的思想和解法组合实现,便于读者融会贯通地理解本书中介绍的算法,读者对这些案例稍加修改,便可应用于实际开发中。
5.注释详细,图示丰富,容易理解
本书中的案例源代码逐行进行了详细的注释,并给出流程图或示意图,便于读者直观地理解所讲内容,从而提高学习效率。
6.提供完善的技术支持和售后服务
本书提供专门的技术支持邮箱(WoLykos@163.com 和 hzbook2017@163.com)与微信公众号(gh_0a33f89bdafe),读者在阅读本书的过程中若有任何疑问,可以通过邮箱或公众号获得帮助。
本书内容
第1篇 基础知识
本篇涵盖第 1~4 章。第 1~3 章主要介绍 Python、算法、数据结构、时间复杂度和空间复杂度等基础概念,其中涵盖整型、布尔值、字符串、列表、元组、字典、集合等数据类型,以及表、树、图等数据结构;第 4 章主要介绍十大排序算法,包括冒泡排序、快速排序、直接插入排序、希尔排序、简单选择排序、堆排序、归并排序、计数排序、桶排序和基数排序。
第2篇 开始算法之旅
本篇涵盖第 5~11 章。第 5 章主要介绍 10 种与数字相关的算法,包括素数、完美数、自守数、快乐数、水仙花数、埃及分数、阶乘算法、辗转相除法、兔子序列和数独,旨在表达数字之美;第 6~11 章主要介绍六种常用算法思想,包括遍历法、迭代法、递归法、回溯法、贪心法和分治法,涉及其基本思想、关键特征、解题步骤和算法框架等内容,讲解时以 6 种算法思想为依据,列举 40 多个典型案例及其对应的 100 多种解题思路和方法。
本书读者
准备从事数据分析、AI 和算法等工作的人员;
Python、C++、Java 和 PHP 等程序员;
数据专员和数据分析工程师;
运营、产品和研发人员;
对算法有浓厚兴趣和需求的人员;
广大数学爱好者;
希望提升逻辑思维的人员;
高等学校相关专业的学生;
专业培训机构的学员。
配书资源获取方式
本书涉及的所有源代码都需要读者自行下载。请在机械工业出版社华章分社(www.hzbook.com)上搜索到本书,然后单击“资料下载”按钮,即可在本书页面上找到下载链接。
售后支持
读者阅读本书时若有疑问,可以发电子邮件(邮箱地址见前文)获得帮助,也可以通过笔者的微信公众号 gh_0a33f89bdafe 提出,笔者会不定期解答。另外,书中若有疏漏和不当之处,也请读者及时反馈,以便后期修订。

上架指导

计算机/程序设计/Python

封底文字

本书经典算法与案例:

冒泡排序
快速排序
直接插入排序
希尔排序
简单选择排序
堆排序
归并排序
计数排序
桶排序
基数排序
求100以内的素数
求1000以内的完美数
求10 000以内的自守数
快乐数
水仙花数
分马问题
分苹果问题
打字员问题
阶乘算法
辗转相除法
汉诺塔问题
斐波那契数列
原序去重问题
黑盒取球问题
鸡兔同笼问题
龟兔赛跑问题
素数环
决策树
空间树
最小生成树
二分搜索算法
二叉树遍历问题
明星问题
握手问题
均分纸牌问题
马踏棋盘问题
猴子摘桃问题
阿米巴分裂问题
青蛙跳台阶问题
影院座位分配问题
背包问题
数独问题
八皇后问题
迷宫问题
迷宫最短路径问题
Prim算法问题
Kruskal算法问题
凸包问题
全排列问题
最近点对问题
最大连续子序列之和问题

作者简介

王小川 编著:本书特色:
注重基础:对常用算法的概念、特征、应用和设计策略做详细介绍。
讲解透彻:对常用算法涉及的各种数据结构类型进行原理性分析。
案例丰富:用幽默风趣的语言详解40多个典型案例及其涉及的相关算法。
趣味性强:选取的案例趣味性较强,可以极大地提高读者的编程兴趣。
代码详尽:每个案例都给出详细的实现代码及注释,并给出流程图或示意图。

图书目录

前言
第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

教学资源推荐
作者: [美]沙伦·比奥卡·扎卡沃(Sharon Biocca Zakhour) 索娅·坎南(Sowmya Kannan) 雷蒙德·盖拉多(Raymond Gallardo) 著
作者: Tom Cargill
参考读物推荐
作者: 李宁 著
作者: [美] 马修·柯克(Matthew Kirk)著
作者: [法]克莱门特·埃斯科菲耶(Clement Escoffier),[澳]肯·芬尼根(Ken Finnigan) 著
作者: 任侃 曹越 吴杰 等著