漫画算法

漫画算法:小灰的算法之旅

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

适读人群 :计算机及相关专业在校生,程序开发人员

《漫画算法:小灰的算法之旅》上市短短数月,问鼎京东科技新书销量榜。

小灰的算法故事给算法这颗“炮弹”包上了“糖衣”,让算法的威力潜藏于内,外表不再吓人,萌萌哒Q弹可爱。

从基本数据结构,到各类常用算法,再到面试算法,再到职场应用,书中的主角小灰和大黄带领大家逐个破解。

和一群快乐的小仓鼠共同领悟算法思想、理解算法对内存空间和性能的影响,并开动脑筋去寻求解决问题的高效方案。

内容简介

本书通过虚拟的主人公小灰的心路历程,用漫画的形式讲述了算法和数据结构的基础知识、复杂多变的算法面试题目及算法的实际应用场景。

第1章 介绍了算法和数据结构的相关概念,告诉大家算法是什么,数据结构又是什么,它们有哪些用途,如何分析时间复杂度,如何分析空间复杂度。

第2章 介绍了最基本的数据结构,包括数组、链表、栈、队列、哈希表的概念和读写操作。

第3章 介绍了树和二叉树的概念、二叉树的各种遍历方式、二叉树的特殊形式——二叉堆和优先队列的应用。

第4章 介绍了几种典型的排序算法,包括冒泡排序、快速排序、堆排序、计数排序、桶排序。

第5章 介绍了10余道职场上流行的算法面试题及详细的解题思路。例如怎样判断链表有环,怎样计算大整数相加等。

第6章 介绍了算法在职场上的一些应用,例如使用LRU算法来淘汰冷数据,使用Bitmap算法来统计用户特征等

作者简介

魏梦舒(@程序员小灰):微信公众号“程序员小灰”的作者,多年的软件行业从业经验,先后在京东金融和摩拜科技从事研发工作,对算法有一定的兴趣和经验。

章节目录

第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 什么是链表 / 33

2.2.1 “正规军”和“地下党” / 33

2.2.2 链表的基本操作 / 35

2.3 栈和队列 / 42

2.3.1 物理结构和逻辑结构 / 42

2.3.2 什么是栈 / 43

2.3.3 栈的基本操作 / 44

2.3.4 什么是队列 / 45

2.3.5 队列的基本操作 / 46

2.3.6 栈和队列的应用 / 50

2.4 神奇的散列表 / 51

2.4.1 为什么需要散列表 / 51

2.4.2 哈希函数 / 54

2.4.3 散列表的读写操作 / 55

2.5 小结 / 59

第3章 树 / 61

3.1 树和二叉树 / 61

3.1.1 什么是树 / 61

3.1.2 什么是二叉树 / 64

3.1.3 二叉树的应用 / 67

3.2 二叉树的遍历 / 71

3.2.1 为什么要研究遍历 / 71

3.2.2 深度优先遍历 / 73

3.2.3 广度优先遍历 / 84

3.3 什么是二叉堆 / 88

3.3.1 初识二叉堆 / 88

3.3.2 二叉堆的自我调整 / 90

3.3.3 二叉堆的代码实现 / 95

3.4 什么是优先队列 / 98

3.4.1 优先队列的特点 / 98

3.4.2 优先队列的实现 / 99

3.5 小结 / 103

第4章 排序算法 / 105

4.1 引言 / 105

4.2 什么是冒泡排序 / 107

4.2.1 初识冒泡排序 / 107

4.2.2 冒泡排序的优化 / 110

4.2.3 鸡尾酒排序 / 114

4.3 什么是快速排序 / 118

4.3.1 初识快速排序 / 118

4.3.2 基准元素的选择 / 120

4.3.3 元素的交换 / 122

4.3.4 单边循环法 / 125

4.3.5 非递归实现 / 128

4.4 什么是堆排序 / 131

4.4.1 传说中的堆排序 / 131

4.4.2 堆排序的代码实现 / 134

4.5 计数排序和桶排序 / 137

4.5.1 线性时间的排序 / 137

4.5.2 初识计数排序 / 138

4.5.3 计数排序的优化 / 140

4.5.4 什么是桶排序 / 145

4.6 小结 / 149

第5章 面试中的算法 / 150

5.1 踌躇满志的小灰 / 150

5.2 如何判断链表有环 / 151

5.2.1 一场与链表相关的面试 / 151

5.2.2 解题思路 / 155

5.2.3 问题扩展 / 158

5.3 最小栈的实现 / 161

5.3.1 一场关于栈的面试 / 161

5.3.2 解题思路 / 163

5.4 如何求出最大公约数 / 166

5.4.1 一场求最大公约数的面试 / 166

5.4.2 解题思路 / 168

5.5 如何判断一个数是否为2的整数次幂 / 173

5.5.1 一场很“2”的面试 / 173

5.5.2 解题思路 / 175

5.6 无序数组排序后的最大相邻差 / 178

5.6.1 一道奇葩的面试题 / 178

5.6.2 解题思路 / 179

5.7 如何用栈实现队列 / 184

5.7.1 又是一道关于栈的面试题 / 184

5.7.2 解题思路 / 186

5.8 寻找全排列的下一个数 / 191

5.8.1 一道关于数字的题目 / 191

5.8.2 解题思路 / 193

5.9 删去k个数字后的最小值 / 196

5.9.1 又是一道关于数字的题目 / 196

5.9.2 解题思路 / 198

5.10 如何实现大整数相加 / 205

5.10.1 加法,你会不会 / 205

5.10.2 解题思路 / 206

5.11 如何求解金矿问题 / 211

5.11.1 一个关于财富自由的问题 / 211

5.11.2 解题思路 / 213

5.12 寻找缺失的整数 / 223

5.12.1 “五行”缺一个整数 / 223

5.12.2 问题扩展 / 225

第6章 算法的实际应用 / 230

6.1 小灰上班的第1天 / 230

6.2 Bitmap的巧用 / 232

6.2.1 一个关于用户标签的需求 / 232

6.2.2 用算法解决问题 / 234

6.3 LRU算法的应用 / 241

6.3.1 一个关于用户信息的需求 / 241

6.3.2 用算法解决问题 / 243

6.4 什么是A星寻路算法 / 249

6.4.1 一个关于迷宫寻路的需求 / 249

6.4.2 用算法解决问题 / 251

6.5 如何实现红包算法 / 262

6.5.1 一个关于钱的需求 / 262

6.5.2 用算法解决问题 / 264

6.6 算法之路无止境 / 268

漫画算法是2019年由电子工业出版社出版,作者魏梦舒。

得书感谢您对《漫画算法》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
趣学数据结构 电子书
适读人群 :本书可作为程序员的学习用书,也适合没有太多编程经验但又对数据结构有强烈兴趣的初学者使用,同时也可作为高等院校计算机、数学及相关专业的师生用书,或学科竞赛的辅导用书和培训学校的教材。   (1)完美图解 丰富实例,复杂问题简单化   为基本操作配以图解,用数据结构解决生活中的实际问题,学习过程更加轻松有趣。   (2)原理分析 实战演练,真正地学以致用   通俗化讲解基础知识,在实战中体会数据结构的设计和操作,锻炼独立思考的能力。   (3)配套代码 在线答疑,为学习保驾护航   提供书中的范例程序源代码、练习题以及答案解析,并在博客和QQ群中答疑解惑。
数据结构(Java语言描述) 电子书
提供大量应用案例、有针对性的实训任务和综合项目实训,既方便教学又方便自学。
机器学习实战 电子书
《机器学习实战》面向日常任务的高效实战内容,介绍并实现机器学习的主流算法。
深度学习高手笔记·卷1:基础算法 电子书
本书从算法理论、算法源码、实验结果等方面对深度学习算法进行分析和介绍。
Python 3破冰人工智能:从入门到实战 电子书
数学基础:从历年数学建模竞赛入手,解读人工智能中的数学方法。 编程实践:100余个代码实例,全面讲解网络爬虫、数据存储与数据分析等内容。 算法应用:实战案例辅以丰富图解,详尽分析人工智能算法特性及其应用场景。