漫画算法:小灰的算法之旅(Python篇)
温馨提示:5折以下图书主要为出版社尾货,大部分为全新(有塑封/无塑封),个别图书品相8-9成新、切口有划线标记、光盘等附件不全详细品相说明>>
- ISBN:9787121382789
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:24cm
- 页数:11,255页
- 出版时间:2020-05-01
- 条形码:9787121382789 ; 978-7-121-38278-9
本书特色
适读人群 :编程人员,IT开发岗位求职人员,计算机及相关专业在校生被CSDN、InfoQ、极客时间等程序员技术社区频频转发的算法故事。 青年意见领袖stormzhang、@码农翻身|刘欣、@Python爱好者社区|梁勇、@Hollis张洪亮、《Python3网络爬虫开发实战》作者崔庆才对《漫画算法》赞不绝口。 从基本数据结构,到各类常用算法,再到面试算法,再到职场应用,书中的主角小灰和大黄带领大家逐个破解。 和一群快乐的小仓鼠共同领悟算法思想、理解算法对内存空间和性能的影响,并开动脑筋去寻求解决问题的高效方案。 小灰的算法故事给算法这颗“炮弹”包上了“糖衣”,让算法的威力潜藏于内,外表不再吓人,萌萌哒Q弹可爱。
内容简介
本书通过虚拟的主人公小灰的心路历程, 用漫画的形式讲述了算法和数据结构的基础知识、复杂多变的算法面试题目及算法的实际应用场景。
目录
第1章 算法概述 / 1
1.1 算法和数据结构 / 1
1.1.1 小灰和大黄 / 1
1.1.2 什么是算法 / 3
1.1.3 什么是数据结构 / 7
1.2 时间复杂度 / 8
1.2.1 算法的好与坏 / 8
1.2.2 基本操作执行次数 / 10
1.2.3 渐进时间复杂度 / 12
1.2.4 时间复杂度的巨大差异 / 15
1.3 空间复杂度 / 16
1.3.1 什么是空间复杂度 / 16
1.3.2 空间复杂度的计算 / 19
1.3.3 时间与空间的取舍 / 21
1.4 小结 / 22
第2章 数据结构基础 / 23
2.1 什么是数组 / 23
2.1.1 初识数组 / 23
2.1.2 数组的基本操作 / 26
2.1.3 数组的优势和劣势 / 32
2.2 什么是链表 / 32
2.2.1 “正规军”和“地下党” / 32
2.2.2 链表的基本操作 / 35
2.2.3 数组VS链表 / 40
2.3 栈和队列 / 41
2.3.1 物理结构和逻辑结构 / 41
2.3.2 什么是栈 / 42
2.3.3 栈的基本操作 / 43
2.3.4 什么是队列 / 44
2.3.5 队列的基本操作 / 45
2.3.6 栈和队列的应用 / 48
2.4 神奇的哈希表 / 50
2.4.1 为什么需要哈希表 / 50
2.4.2 哈希函数 / 52
2.4.3 哈希表的读写操作 / 53
2.5 小结 / 56
第3章 树 / 58
3.1 树和二叉树 / 58
3.1.1 什么是树 / 58
3.1.2 什么是二叉树 / 61
3.1.3 二叉树的应用 / 64
3.2 二叉树的遍历 / 68
3.2.1 为什么要研究遍历 / 68
3.2.2 深度优先遍历 / 70
3.2.3 广度优先遍历 / 80
3.3 什么是二叉堆 / 83
3.3.1 初识二叉堆 / 83
3.3.2 二叉堆的自我调整 / 86
3.3.3 二叉堆的代码实现 / 91
3.4 什么是优先队列 / 93
3.4.1 优先队列的特点 / 93
3.4.2 优先队列的实现 / 95
3.5 小结 / 98
第4章 排序算法 / 100
4.1 引言 / 100
4.2 什么是冒泡排序 / 102
4.2.1 初识冒泡排序 / 102
4.2.2 冒泡排序的优化 / 105
4.2.3 鸡尾酒排序 / 108
4.3 什么是快速排序 / 112
4.3.1 初识快速排序 / 112
4.3.2 基准元素的选择 / 114
4.3.3 元素的交换 / 116
4.3.4 单边循环法 / 118
4.3.5 非递归实现 / 121
4.4 什么是堆排序 / 123
4.4.1 传说中的堆排序 / 123
4.4.2 堆排序的代码实现 / 127
4.5 计数排序和桶排序 / 129
4.5.1 线性时间的排序 / 129
4.5.2 初识计数排序 / 130
4.5.3 计数排序的优化 / 132
4.5.4 什么是桶排序 / 137
4.6 小结 / 140
第5章 面试中的算法 / 141
5.1 踌躇满志的小灰 / 141
5.2 如何判断链表有环 / 142
5.2.1 一场与链表相关的面试 / 142
5.2.2 解题思路 / 146
5.2.3 问题扩展 / 148
5.3 *小栈的实现 / 151
5.3.1 一场关于栈的面试 / 151
5.3.2 解题思路 / 153
5.4 如何求出*大公约数 / 156
5.4.1 一场求*大公约数的面试 / 156
5.4.2 解题思路 / 158
5.5 如何判断一个数是否为2的整数次幂 / 162
5.5.1 一场很“2”的面试 / 162
5.5.2 解题思路 / 165
5.6 无序数组排序后的*大相邻差 / 167
5.6.1 一道奇葩的面试题 / 167
5.6.2 解题思路 / 168
5.7 如何用栈实现队列 / 173
5.7.1 又是一道关于栈的面试题 / 173
5.7.2 解题思路 / 174
5.8 寻找全排列的下一个数 / 179
5.8.1 一道关于数字的题目 / 179
5.8.2 解题思路 / 181
5.9 删去k个数字后的*小值 / 184
5.9.1 又是一道关于数字的题目 / 184
5.9.2 解题思路 / 186
5.10 如何找到两个数组的中位数 / 192
5.10.1 有关中位数的问题 / 192
5.10.2 解题思路 / 194
5.11 如何求解金矿问题 / 200
5.11.1 一个关于财富自由的问题 / 200
5.11.2 解题思路 / 202
5.12 寻找缺失的整数 / 211
5.12.1 “五行”缺一个整数 / 211
5.12.2 问题扩展 / 213
第6章 算法的实际应用 / 218
6.1 小灰上班的第1天 / 218
6.2 Bitmap的巧用 / 220
6.2.1 一个关于用户标签的需求 / 220
6.2.2 用算法解决问题 / 222
6.3 LRU算法的应用 / 228
6.3.1 一个关于用户信息的需求 / 228
6.3.2 用算法解决问题 / 231
6.4 什么是A星寻路算法 / 236
6.4.1 一个关于迷宫寻路的需求 / 236
6.4.2 用算法解决问题 / 238
6.5 如何实现红包算法 / 248
6.5.1 一个关于钱的需求 / 248
6.5.2 用算法解决问题 / 251
6.6 算法之路无止境 / 254
作者简介
微信公众号程序员小灰的作者,多年的软件行业从业经验,先后在京东金融和摩拜科技从事算法和研发相关工作,对算法有着深入的研究。
-
全图解零基础word excel ppt 应用教程
¥15.6¥48.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥12.7¥39.8 -
机器学习
¥59.4¥108.0 -
情感计算
¥66.8¥89.0 -
LINUX企业运维实战(REDIS+ZABBIX+NGINX+PROMETHEUS+GRAFANA+LNMP)
¥48.3¥69.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
LINUX实战——从入门到精通
¥48.3¥69.0 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
数据驱动的工业人工智能:建模方法与应用
¥68.3¥99.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
UN NX 12.0多轴数控编程案例教程
¥24.3¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥38.7¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0