《漫画算法:小灰的算法之旅》是由电子工业出版社出版的一本关于算法方面的书籍,作者是魏梦舒,主要介绍了关于漫画算法、小灰、算法之旅方面的知识内容,目前在算法类书籍综合评分为:9.6分。
书籍介绍
本资源为完整全格式完整版(非试看版)
小灰的算法经典故事给算法这颗“子弹”包上了“糖衣”,让算法的杀伤力潜藏于内,表面已不可怕,萌萌达Q弹讨人喜欢。
从基本数据结构,到各种排序算法,再到招聘面试算法,再到初入职场运用,书中的主人公小灰和大黄领着大伙儿逐一破译。
和一大群开心的小仓鼠相互理解算法观念、了解算法对存储空间和特性的危害,并打破常规去寻找解决困难的尚佳计划方案。
这书根据主人翁小灰的成长经历,用动漫漫画的方式叙述了算法和数据结构的基本知识,纷繁复杂的算法面试题目及算法的具体应用领域。最先详细介绍了算法和数据结构的整体定义,告诉他大伙儿算法是啥,数据结构又是啥,常有什么主要用途,怎样剖析时间复杂度,怎样剖析室内空间复杂性。第二章 详细介绍了*基本的数据结构,包含数组、链表、栈、序列、哈希表的定义和读写操作。第三章 详细介绍了树和二叉树的定义、二叉树的各种各样遍历方法、二叉树的独特方式二叉堆和优先队列的运用。4 详细介绍了几类典型性的排序算法,包含冒泡排序、快速排序、堆排序、记数排列、桶排序。第五章 详细介绍了十余种职场中时兴的算法面试题目及详尽的答题构思。比如如何分辨链表有环、如何测算大整数金额加法等。第六关 详细介绍了算法在职人员场中的某些运用,比如应用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