由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
[正版]全2册漫画算法小灰的算法之旅+图解算法使用Java 程序员小灰著数据结构与算法零基础从入门到精通自学基础教程书
¥ ×1
店铺公告
为保障消费者合理购买需求及公平交易机会,避免因非生活消费目的的购买货囤积商品,抬价转售等违法行为发生,店铺有权对异常订单不发货且不进行赔付。异常订单:包括但不限于相同用户ID批量下单,同一用户(指不同用户ID,存在相同/临近/虚构收货地址,或相同联系号码,收件人,同账户付款人等情形的)批量下单(一次性大于5本),以及其他非消费目的的交易订单。
温馨提示:请务必当着快递员面开箱验货,如发现破损,请立即拍照拒收,如验货有问题请及时联系在线客服处理,(如开箱验货时发现破损,所产生运费由我司承担,一经签收即为货物完好,如果您未开箱验货,一切损失就需要由买家承担,所以请买家一定要仔细验货)。
关于退货运费:对于下单后且物流已发货货品在途的状态下,原则上均不接受退货申请,如顾客原因退货需要承担来回运费,如因产品质量问题(非破损问题)可在签收后,联系在线客服。
商品基本信息,请以下列介绍为准 | |
图书名称: | 【全2册】漫画算法:小灰的算法之旅+图解算法:使用Java |
作者: | 魏梦舒、吴灿铭、胡昭民 |
定价: | 148.00 |
ISBN号: | 9787121361975 9787302565345 |
出版社: | 电子工业出版社 |
内容简介 |
本书通过主人公小灰的心路历程,用漫画的形式讲述了算法和数据结构的基础知识,复杂多变的算法面试题目及算法的实际应用场景。首先介绍了算法和数据结构的总体概念,告诉大家算法是什么,数据结构又是什么,都有哪些用途,如何分析时间复杂度,如何分析空间复杂度。第二章 介绍了*基本的数据结构,包括数组、链表、栈、队列、哈希表的概念和读写操作。第三章 介绍了树和二叉树的概念、二叉树的各种遍历方式、二叉树的特殊形式二叉堆和优先队列的应用。第四章 介绍了几种典型的排序算法,包括冒泡排序、快速排序、堆排序、计数排序、桶排序。第五章 介绍了十余种职场上流行的算法面试题目及详细的解题思路。例如怎样判断链表有环、怎样计算大整数加法等。第六章 介绍了算法在职场上的一些应用,例如使用LRU算法来淘汰冷数据,使用Bitmap算法来统计用户特征等
本书是一本综合讲述数据结构及其算法的入门书,内容浅显易懂、逻辑严谨,范例丰富、可操作性强,力求适用性兼顾教师教学和学生自学。 全书从基本的数据结构概念开始讲解,包括数组结构、队列、堆栈、树结构、排序、查找等;接着介绍常用的算法,包括分治法、递归法、贪心法、动态规划法、迭代法、枚举法、回溯法等,每个经典的算法都提供了Java程序设计语言编写的完整范例代码,并辅以丰富的图示解析。*后在每章末尾都安排了大量的习题,这些习题包含各类考试的例题,并在附录中提供了解答,可供读者自测学习效果。 本书针对具有一定编程能力又想提高编程“深度”的非信息专业类人员,是一本数据结构和算法普及型的教科书或自学参考书
目录 |
第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
第1章 计算思维与程序设计 1
1.1 程序设计的速成攻略 2
1.1.1 计算思维简介 3
1.1.2 分解 4
1.1.3 模式识别 4
1.1.4 模式概括与抽象 5
1.1.5 算法 6
1.2 生活中到处都是算法 6
1.2.1 算法的条件 7
1.2.2 时间复杂度O(f(n)) 9
1.3 程序设计逻辑简介 11
1.3.1 结构化程序设计 11
1.3.2 面向对象程序设计 12
1.3.3 面向对象程序设计的其他概念 15
课后习题 15
第2章 经典算法介绍 17
2.1 分治法 17
2.2 递归法 18
2.3 动态规划法 21
2.4 迭代法 22
2.5 枚举法 25
2.6 回溯法 29
2.7 贪心法 35
课后习题 37
第3章 走入数据结构的奇妙世界 38
3.1 认识数据结构 39
3.2 常见的数据结构 41
3.2.1 数组 41
3.2.2 链表 45
3.2.3 堆栈 46
3.2.4 队列 47
3.3 树结构简介 49
3.3.1 树的基本概念 49
3.3.2 二叉树 51
3.4 图论简介 52
3.5 哈希表 54
课后习题 56
第4章 排序算法 57
4.1 认识排序 58
4.2 冒泡排序法 60
4.3 选择排序法 64
4.4 插入排序法 67
4.5 希尔排序法 69
4.6 快速排序法 73
4.7 合并排序法 76
4.8 基数排序法 77
4.9 堆积树排序法 80
课后习题 87
第5章 查找算法 88
5.1 常见的查找算法 88
5.2 顺序查找法 89
5.3 二分查找法 91
5.4 插值查找法 94
5.5 斐波那契查找法 96
课后习题 99
第6章 数组与链表算法 100
6.1 矩阵算法与深度学习 100
6.1.1 矩阵相加 103
6.1.2 矩阵相乘 105
6.1.3 转置矩阵 107
6.1.4 稀疏矩阵 109
6.2 数组与多项式 112
6.3 单向链表算法 113
6.3.1 单向链表插入节点的算法 119
6.3.2 单向链表删除节点的算法 123
6.3.3 对单向链表进行反转的算法 127
6.3.4 单向链表串接的算法 130
6.4 链表与多项式 131
课后习题 136
第7章 安全性算法 137
7.1 数据加密 138
7.1.1 对称密钥加密系统 139
7.1.2 非对称密钥加密系统与RSA算法 139
7.1.3 认证 140
7.1.4 数字签名 141
7.2 哈希算法 142
7.2.1 除留余数法 142
7.2.2 平方取中法 143
7.2.3 折叠法 144
7.2.4 数字分析法 145
7.3 碰撞与溢出处理 145
7.3.1 线性探测法 145
7.3.2 平方探测法 148
7.3.3 再哈希法 148
7.3.4 链表 150
课后习题 154
第8章 堆栈与队列算法 156
8.1 以数组来实现堆栈 156
8.2 以链表来实现堆栈 161
8.3 汉诺塔问题的求解算法 165
8.4 八皇后问题的求解算法 171
8.5 用数组来实现队列 174
8.6 用链表来实现队列 177
8.7 双向队列 179
8.8 优先队列 182
课后习题 183
第9章 树结构及其算法 184
9.1 用数组来实现二叉树 185
9.2 用链表来实现二叉树 188
9.3 二叉树遍历 190
9.4 二叉查找树 196
9.5 二叉树节点的插入与删除 199
9.6 二叉运算树 201
9.7 二叉排序树 205
9.8 线索二叉树 208
9.9 扩充二叉树 213
9.10 哈夫曼树 215
9.11 平衡树 216
9.12 机器学习与博弈树 218
9.12.1 机器学习 218
9.12.2 博弈树算法 219
课后习题 220
第10章 图结构及其算法 222
10.1 图的数据表示法 222
10.1.1 邻接矩阵法 223
10.1.2 邻接链表法 225
10.1.3 邻接复合链表法 228
10.1.4 索引表格法 230
10.2 图的遍历 230
10.2.1 深度优先遍历法 230
10.2.2 广度优先遍历法 233
10.3 生成树 236
10.3.1 DFS生成树和BFS生成树 237
10.3.2 小成本生成树 238
10.3.3 Prim算法 238
10.3.4 Kruskal算法 241
10.4 图的短路径法 246
10.4.1 Dijkstra算法与A*算法 247
10.4.2 Floyd算法 252
课后习题 256
附录 课后习题与解答 259
作者简介 |
程序员小灰的作者,多年的软件行业从业经验,先后在金融和摩拜科技从事算法和研发相关工作,对算法有着深入的研究
吴灿铭,现任荣钦科技股份有限公司执行长,美国Rochester Institute of Technology计算机科学研究所毕业,长期从事信息教育及计算机图书写作的工作,计算机图书著作包括计算器概论、数据结构、办公室电子数据处理、互联网等相关题材,并监制过多套游戏以及教学软件的研发
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格