漫画算法-小灰的算法之旅,漫画算法2:小灰的算法进阶pdf
题目:漫画算法:美丽咖啡的算法之旅(Python)
定价:79.0英镑
国际标准书号:9787121382789
作者:激情爆米花
版本:第一版
发布时间:2020年3月
执行摘要:
编辑推荐
CSDN、InfoQ、极客时间等程序员技术社区经常转发的算法故事。
青年意见领袖stormzhang、@ Codefarmer翻身野可乐、@Python爱好者社区快乐花生、@Hollis激情可乐、《Python3网络爬虫开发实战》作者xqdrs对《漫画算法》赞不绝口。
从基础数据结构,到各种常用算法,再到面试算法,再到职场应用,书中的主角美咖和大黄带领大家一一破解。
和一群快乐的仓鼠在一起,我们可以理解算法的思想,理解算法对内存空间和性能的影响,开动脑筋寻找高效的解决问题的方法。
美丽咖啡的算法故事,用“糖衣”包裹算法的“炮弹”,让算法的力量隐藏在里面,外表不再吓人,可爱的Q弹可爱。
摘要
055-79000通过虚拟英雄美咖的心路历程,以漫画的形式讲述算法与数据结构的基础知识、复杂的算法面试题以及算法的实际应用场景。第一章介绍算法和数据结构的相关概念,告诉你什么是算法,什么是数据结构,它们的用途是什么,如何分析时间复杂度,如何分析空间复杂度。第二章介绍了*的基本数据结构,包括数组、链表、栈、队列、哈希表和读写操作的概念。第三章介绍了树和二叉树的概念,二叉树的各种遍历方法,二叉树的特殊形式,——二叉堆和优先级队列的应用。第四章介绍了几种典型的排序算法,包括冒泡排序、快速排序、堆排序、计数排序和桶排序。第5章介绍了10多道职场热门算法面试题及详细解答。比如如何判断链表是否有环,如何计算大整数的加法等等。第六章介绍了该算法在工作场所中的一些应用,如剔除冷数据的LRU算法和统计用户特征的位图算法。
作者介绍:
作者简介
美丽咖啡作者,微信程序员,有多年软件行业经验。曾在京东金融和摩拜单车科技从事算法和R&D工作,对算法有很深的研究。
目录:
目录
第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
第二章数据结构基础/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数组与链表/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
第三章树/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
第四章排序算法/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
第五章面试中的算法/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如何用Stack/173实现队列
5.7.1另一个关于stack/173的面试问题
5.7.2解决问题的思路/174
5.8找出完整排列中的下一个数字/179
5.8.1关于数字的话题/179
5.8.2解决问题的思路/181
删除k位数后的5.9 *小值/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
第六章算法/218的实际应用
6.1上班第一天喝咖啡/218
6.2巧用位图/220
6.2.1用户标签需求/220
6.2.2用算法解决问题/222
6.3算法的应用/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