漫画算法2:小灰的算法进阶
温馨提示:5折以下图书主要为出版社尾货,大部分为全新(有塑封/无塑封),个别图书品相8-9成新、切口有划线标记、光盘等附件不全详细品相说明>>
- ISBN:9787121411311
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:248
- 出版时间:2021-05-01
- 条形码:9787121411311 ; 978-7-121-41131-1
本书特色
《漫画算法:小灰的算法之旅》续作,新增红黑树、图、KPM、希尔排序等高阶数据结构与算法,并有更多面试实战题。 @stormzhang帅张、《labuladong的算法小抄》作者、@敖太子三丙、@纯洁的微笑人气号主力荐 《漫画算法:小灰的算法进阶》中小灰的算法故事给算法这颗“炮弹”包上了“糖衣”,让算法的威力潜藏于内,外表不再吓人,萌萌哒Q弹可爱。 和一群快乐的小仓鼠共同领悟算法思想、理解算法对内存空间和性能的影响,并开动脑筋去寻求解决问题的高效方案。
内容简介
本书是《漫画算法:小灰的算法之旅》的续作,通过主人公小灰的心路历程,用漫画的形式讲述了多个数据结构、算法及复杂多变的算法面试题目。 第1章介绍了几种典型的排序算法,包括选择排序、插入排序、希尔排序、归并排序、基数排序。 第2章介绍了“树”结构的高级应用,包括二叉查找树、AVL树、红黑树、B树和B+树。 第3章介绍了“图”结构的概念,以及深度优先遍历、广度优先遍历、单源*短路径、多源*短路径算法。 第4章介绍了“查找”相关的算法和数据结构,包括二分查找算法、RK算法、KMP算法,以及“跳表”这种用于高效查找的数据结构。 第5章介绍了多种职场上流行的算法面试题目及详细的解题思路,例如螺旋遍历二维数组、寻找数组中第k大元素、求股票交易的更大收益等。
目录
第1章 排序算法进阶 / 1
1.1 新的开始 / 1
1.2 什么是选择排序 / 3
1.2.1 如何减少比较次数 / 3
1.2.2 选择排序的实现 / 8
1.3 什么是插入排序 / 10
1.3.1 扑克牌中的排序算法 / 10
1.3.2 插入排序的优化 / 14
1.4 什么是希尔排序 / 16
1.4.1 插入排序的升级 / 16
1.4.2 希尔排序的优化 / 20
1.5 什么是归并排序 / 22
1.5.1 擂台上的排序算法 / 22
1.5.2 归并排序的具体操作 / 25
1.6 什么是基数排序 / 29
1.6.1 另一种线性排序算法 / 29
1.6.2 解决对齐问题 / 33
1.7 小结 / 35
第2章 树的进阶 / 37
2.1 什么是二叉查找树 / 37
2.1.1 二叉树查找树的特性 / 37
2.1.2 二叉查找树的插入和删除 / 40
2.1.3 二叉查找树的缺陷 / 45
2.2 什么是平衡二叉树 / 47
2.2.1 平衡因子和旋转 / 47
2.2.2 平衡二叉树的插入和删除 / 53
2.3 什么是红黑树 / 58
2.3.1 另一种自平衡方式 / 58
2.3.2 红黑树的插入 / 62
2.3.3 红黑树的删除 / 68
2.3.4 红黑树的实践和应用场景 / 76
2.4 什么是B树和B+树 / 79
2.4.1 数据库的索引 / 79
2.4.2 什么是B树 / 81
2.4.3 什么是B+树 / 88
2.5 小结 / 90
第3章 图 / 91
3.1 什么是图 / 91
3.1.1 图的基本概念 / 91
3.1.2 图的存储方式 / 95
3.2 图的遍历 / 97
3.2.1 深度优先和广度优先 / 97
3.2.2 遍历的具体实现 / 101
3.3 图的*短路径 / 107
3.3.1 什么是迪杰斯特拉算法 / 107
3.3.2 迪杰斯特拉算法的原理 / 111
3.3.3 如何得到完整路径 / 116
3.4 图的多源*短路径 / 125
3.5 小结 / 132
第4章 查找算法 / 133
4.1 引言 / 133
4.2 什么是二分查找 / 135
4.2.1 一个特殊的游戏 / 135
4.2.2 二分查找的原理 / 138
4.3 什么是跳表 / 141
4.3.1 链表能做二分查找吗 / 141
4.3.2 跳表的插入与删除 / 146
4.4 什么是字符串匹配算法 / 155
4.4.1 朴素的字符串匹配 / 155
4.4.2 朴素字符串匹配的改进 / 158
4.5 什么是KMP算法 / 164
4.5.1 无谓的字符比较 / 164
4.5.2 KMP算法的原理 / 166
4.6 小结 / 176
第5章 面试中的算法 / 177
5.1 踌躇满志的小灰 / 177
5.2 如何螺旋遍历二维数组 / 179
5.2.1 **次交锋 / 179
5.2.2 解题思路 / 181
5.3 两数之和与三数之和 / 187
5.3.1 再接再厉 / 187
5.3.2 解题思路 / 189
5.3.3 问题的扩展 / 194
5.4 数组中的第k个*大元素 / 201
5.4.1 一道数组相关的题目 / 201
5.4.2 解题思路 / 204
5.5 链表的倒数第k个节点 / 210
5.5.1 一道链表相关的题目 / 210
5.5.2 解题思路 / 212
5.6 千变万化的股票交易问题 / 216
5.6.1 如何获得*大收益 / 216
5.6.2 解题思路 / 218
5.6.3 题目变形:买卖次数不限 / 220
5.6.4 题目再变形:2次买卖 / 221
5.6.5 *后的胜利 / 233
5.7 结束也是开始 / 235
作者简介
魏梦舒(@程序员小灰):微信公众号“程序员小灰”的作者,多年软件行业从业经验,先后在京东金融和摩拜科技从事研发工作,对算法有一定的兴趣和经验。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥48.2¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0