登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入   新用戶註冊
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / 物流,時效:出貨後2-4日

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

『簡體書』算法新解

書城自編碼: 2938777
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作者: 刘新宇
國際書號(ISBN): 9787115440358
出版社: 人民邮电出版社
出版日期: 2017-01-01
版次: 1 印次: 1
頁數/字數: 566/
書度/開本: 128开 釘裝: 平装

售價:NT$ 713

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
心跳重置
《 心跳重置 》

售價:NT$ 269.0
云中记
《 云中记 》

售價:NT$ 347.0
中国古代妇女生活(中国古代生活丛书)
《 中国古代妇女生活(中国古代生活丛书) 》

售價:NT$ 214.0
你的认知正在阻碍你
《 你的认知正在阻碍你 》

售價:NT$ 296.0
我们身边的小鸟朋友:手绘观鸟笔记
《 我们身边的小鸟朋友:手绘观鸟笔记 》

售價:NT$ 356.0
拯救免疫失衡
《 拯救免疫失衡 》

售價:NT$ 254.0
收尸人
《 收尸人 》

售價:NT$ 332.0
大模型应用开发:RAG入门与实战
《 大模型应用开发:RAG入门与实战 》

售價:NT$ 407.0

建議一齊購買:

+

NT$ 537
《 地下结构 》
+

NT$ 703
《 国际用户体验设计 : 阿里国际站用户体验设计案例精粹 》
+

NT$ 621
《 HTML 5移动Web开发实战详解(Web开发典藏大系) 》
+

NT$ 463
《 汽车电子与电气系统检修 》
+

NT$ 621
《 ASP.NET MVC 4实战 》
+

NT$ 233
《 汽车综合故障诊断与修复(工业和信息化高职高专“十二五”规划教材立项项目) 》
編輯推薦:
伪代码与多语言实现并存,充分发挥语言特性
理论与实例结合,轻松学习算法与数据结构
内含ACM竞赛趣题和传统趣题,发现算法的乐趣
七年磨一剑,亚马逊中国高级研发人员重磅力作
內容簡介:
本书同时用函数式方法和传统方法介绍了主要的基本算法和数据结构,数据结构部分包括二叉树、红黑树、AVL树、Trie、Patricia、后缀树、B树、二叉堆、二项式堆、斐波那契堆、Pairing堆、队列、序列等;基本算法部分包括各种排序算法、序列搜索算法,字符串匹配算法(KMP等),深度优先、广度有限搜索算法、贪心算法以及动态规划。
關於作者:
刘新宇,1999年和2001年分别获得清华大学自动化系学士和硕士学位,之后长期从事软件研发工作。他关注基本算法和数据结构,尤其是函数式算法,目前就职于亚马逊中国仓储和物流技术团队。
目錄
目录
序一 常成博士,4数网主编
序二 姚冬,YY直播架构师
前言
第一部分 树
第1章 二叉搜索树:数据结构中的hello world3
1.1 定义3
1.2 数据组织5
1.3 插入6
1.4 遍历8
1.5 搜索10
1.5.1 lookup10
1.5.2 最小元素和最大元素11
1.5.3 前驱和后继12
1.6 删除14
1.7 随机构建二叉搜索树18
第2章 插入排序的进化19
2.1 简介19
2.2 插入20
2.3 改进一:二分查找20
2.4 改进二:使用链表22
2.5 使用二叉搜索树的最终改进26
2.6 小结27
第3章 并不复杂的红黑树28
3.1 红黑树的定义32
3.2 插入33
3.3 删除36
3.4 命令式的红黑树算法 *44
3.5 小结47
第4章 AVL树48
4.1 AVL树的定义48
4.2 插入51
4.2.1 平衡调整53
4.2.2 模式匹配57
4.3 删除59
4.4 AVL树的命令式算法 *59
4.5 小结63
第5章 基数树:Trie和Patricia65
5.1 整数Trie65
5.1.1 整数Trie的定义67
5.1.2 插入67
5.1.3 查找69
5.2 整数Patricia70
5.2.1 定义71
5.2.2 插入72
5.2.3 查找78
5.3 字符Trie80
5.3.1 定义80
5.3.2 插入81
5.3.3 查找83
5.4 字符Patricia84
5.4.1 定义84
5.4.2 插入85
5.4.3 查找90
5.5 Trie和Patricia的应用92
5.5.1 电子词典和单词自动补齐92
5.5.2 T9输入法97
5.6 小结102
第6章 后缀树103
6.1 后缀Trie104
6.1.1 节点转移和后缀链接105
6.1.2 on-line构造107
6.2 后缀树111
6.3 后缀树的应用121
6.3.1 字符串搜索和模式匹配121
6.3.2 查找最长重复子串123
6.3.3 查找最长公共子串125
6.3.4 查找最长回文127
6.3.5 其他128
6.4 小结128
第7章 B树129
7.1 插入131
7.2 删除139
7.2.1 删除前预合并139
7.2.2 先删除再修复139
7.3 搜索153
7.4 小结155
第二部分 堆
第8章 二叉堆159
8.1 用数组实现隐式二叉堆159
8.1.1 定义159
8.1.2 Heapify160
8.1.3 构造堆163
8.1.4 堆的基本操作164
8.1.5 堆排序168
8.2 左偏堆和skew堆:显式的二叉堆169
8.2.1 定义170
8.2.2 合并172
8.2.3 基本堆操作173
8.2.4 使用左偏堆实现堆排序174
8.2.5 skew堆174
8.3 伸展堆177
8.3.1 定义177
8.3.2 堆排序183
8.4 小结183
第9章 从吃葡萄到世界杯:选择排序的进化184
9.1 查找最小元素186
9.1.1 标记186
9.1.2 分组188
9.1.3 选择排序的性能189
9.2 细微改进190
9.2.1 比较方法参数化190
9.2.2 细微调整191
9.2.3 鸡尾酒排序192
9.3 本质改进196
9.3.1 锦标赛淘汰法196
9.3.2 使用堆排序进行最后的改进204
9.4 小结204
第10章 二项式堆、斐波那契堆和配对堆205
10.1 二项式堆205
10.1.1 定义205
10.1.2 基本的堆操作209
10.2 斐波那契堆220
10.2.1 定义220
10.2.2 基本堆操作221
10.2.3 弹出操作的性能分析230
10.2.4 减小key232
10.2.5 斐波那契堆名字的由来234
10.3 配对堆237
10.3.1 定义237
10.3.2 基本堆操作238
10.4 小结244
第三部分 队列和序列
第11章 并不简单的队列247
11.1 单向链表和循环缓冲区实现的队列247
11.1.1 单向链表实现247
11.1.2 循环缓冲区实现251
11.2 纯函数式实现253
11.2.1 双列表队列254
11.2.2 双数组队列:一种对称实现255
11.3 小改进:平衡队列257
11.4 进一步改进:实时队列259
11.5 惰性实时队列266
11.6 小结269
第12章 序列:最后一块砖271
12.1 二叉随机访问列表271
12.1.1 普通数组和列表271
12.1.2 使用森林表示序列272
12.1.3 在序列的头部插入273
12.2 二叉随机访问列表的数值表示279
12.3 命令式双数组列表285
12.3.1 定义285
12.3.2 插入和添加286
12.3.3 随机访问286
12.3.4 删除和平衡287
12.4 可连接列表289
12.5 手指树293
12.5.1 定义293
12.5.2 向序列的头部插入元素295
12.5.3 从头部删除元素298
12.5.4 删除时处理不规则的手指树300
12.5.5 在序列的尾部添加元素304
12.5.6 从尾部删除元素306
12.5.7 连接307
12.5.8 手指树的随机访问312
12.6 小结325
第四部分 排序和搜索
第13章 分而治之:快速排序和归并排序329
13.1 快速排序329
13.1.1 基本形式330
13.1.2 严格弱序331
13.1.3 划分331
13.1.4 函数式划分算法的小改进335
13.2 快速排序的性能分析337
13.3 工程实践中的改进340
13.4 针对最差情况的工程实践348
13.5 其他工程实践351
13.6 其他351
13.7 归并排序352
13.8 原地归并排序360
13.8.1 死板原地归并360
13.8.2 原地工作区362
13.8.3 原地归并排序与链表归并排序366
13.9 自然归并排序368
13.10 自底向上归并排序374
13.11 并行处理377
13.12 小结377
第14章 搜索379
14.1 序列搜索379
14.1.1 分而治之的搜索379
14.1.2 信息复用400
14.2 解的搜索428
14.2.1 深度优先搜索和广度优先搜索428
14.2.2 搜索最优解468
14.3 小结498
附录 列表500
列表的定义500
列表的基本操作502
变换527
提取子列表536
fold543
搜索和匹配549
zip和unzip555
小结558
参考文献559
索引563
內容試閱
我几年前曾经粗略读过这本书的英文书稿Elementary Algorithms,五六百页的一本算法书,是作者多年来在学术界和工业界实践中不断思考的结晶。那本英文书稿因为对几个算法问题的独到解读,成为英文世界中很多人学习算法的参考资料。这次我拿到新宇的中文版书稿《算法新解》,感觉内容更加充实丰富,文笔更加流畅,引文更加全面,结构更加紧凑,我也更加不读完不能释手。过去有人告诉我又一本中文版算法书要出版时,我通常的反应都是又一本?,并嗤之以鼻。毕竟中文的计算机算法书质量良莠不齐,而且存在大量照翻英文书的现象,而这本《算法新解》则是作者多年知识积累下的原创之作。更加难得的是,作者在书后给出了详细的参考文献,供读者进一步学习参考。

从计算机语言知识的角度看,这本书虽然原叫初等算法,但是对读者的要求并不低,

书中大量使用了CC、Python
和Haskell 这几种语言。CC 和Python 作为传统而又实用的两种语言,包含了指令语言、面向对象和动态语言等几种形态,为从业人员和普通大众所广泛使用和熟悉。那么,为什么要用Haskell 呢?孙中山曾经说过世界潮流,浩浩荡荡,顺之则昌,逆之则亡,计算机语言的进化过程也一样。计算机语言从最初的让机器能理解人的交流工具,逐渐进化到可以描述人类思考过程的更加抽象、数学上更严谨,也更加强大的函数式编程语言,而Haskell 就是函数式编程语言的代表。如果要读懂这本书的最深刻精髓,你需要一点Haskell
知识;如果你之前没有学过,也让这本书成为你学习一门函数式编程语言的动力之一吧!

从算法理论的角度看,这本书深入浅出。作者先花大量篇幅讲述最重要的几种数据结构和相关的处理方法,然后用大量经典而又新颖的问题来讲述计算机算法的核心问题:如何排序和搜索。这本书在前半部分介绍基本的数据结构时没有落入俗套,而是从树、堆讲起,最后介绍并不简单的队列,让人不禁想起张筑生先生先讲积分、后讲微分的经典名著《数学分析新讲》。我很喜欢作者介绍排序算法时对冒泡排序的处理:本书并不花费篇幅谈论如此低效的算法,读者可到维基百科自行花5 分钟理解。相反,作者用了100 多页的篇幅,通过经典而又有趣的谜题详细讲解了各种搜索算法。更难得的是,作者大量使用函数式编程语言来做范例,展示了这类语言的强大之处,这在很多中文算法书中是看不到的。

从思考解决各种有趣问题的角度看,这本书适合任何知识背景和层次的读者享用。算法不仅仅可以用来解决现实世界中的种种实际问题,比如通过关键词寻找网上最有用的信息,寻找最短的旅游路线来游历所有的景点,再比如无线通信中的信道编码和解码;很多美妙的算法源于人类对一些挑战自身智力的谜题的思考,比如经典的华容道问题,寻找数独的解法,再比如用程序战胜九段围棋高手等。书中的这些谜题深刻却不枯燥,作者还给出了很多幽默的插图,它适合也值得任何学术背景的人花时间阅读和思考。这让我看出作者写这本书不但花费了很多心血,而且收获了很多欢乐;使用和发现算法是快乐的,这也是我觉得这本书特别美好之处。毕竟人类的最高阶段就是认识宇宙,了解生命起源,而更高阶段是创造和优雅地解决那些有趣的谜题!

无论作为一个需要使用各种算法的从业人员,还是一个喜欢不停思考有趣问题的人,我都觉得新宇的这本《算法新解》是一本难得的好书。如果可以,我希望能够立刻把全书上传到大脑之中。

常成博士,4 数网主编

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 台灣用户 | 香港/海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.