新書推薦:
《
可转债——新手理财的极简工具
》
售價:HK$
66.7
《
新加坡教育:神话与现实
》
售價:HK$
98.9
《
“口袋中的世界史”第一辑·冷战中的危机事件
》
售價:HK$
299.0
《
绝美的奥伦堡蕾丝披肩编织
》
售價:HK$
181.7
《
狂飙年代:18世纪俄国的新文化和旧文化(第二卷)
》
售價:HK$
177.0
《
万有引力书系 纳粹亿万富翁 德国财富家族的黑暗历史
》
售價:HK$
112.7
《
中国常见植物野外识别手册:青海册
》
售價:HK$
78.2
《
三星堆对话古遗址(从三星堆出发,横跨黄河流域,长江流域,对话11处古遗址,探源多元一体的中华文明)
》
售價:HK$
89.7
|
編輯推薦: |
为了解决膨胀的知识量与有限的学制之间的矛盾,提高教学效率和质量,培养拔尖型创新人才,清华大学电子工程系进行了全面的教学改革。在梳理出电子信息科学与技术知识构架的基础上,构建起了全新的课程体系。本书是清华大学电子工程系核心课系列教材之一,由清华大学副校长王希勤教授作序推荐。随着大数据和数据科学的兴起和发展,如何看待、处理和利用数据,已经成为理论和应用价值巨大的科学领域。本书从数据与算法的相互作用出发,涵盖数据结构、数学模型、数值分析和算法设计思想等相互关联的重要内容,有利于从整体上学习和把握这个学科的基础知识,培养基础能力。书中,问题和算法两个视角构成了纵横交织的网络,帮助读者更清楚地看到数据和算法的相互关系,更透彻地理解数值和非数值问题的差异和共性,帮助读者更全面地提升利用计算机作为工具解决实际问题的能力。
|
內容簡介: |
本书从数据与算法的相互关系入手,内容涵盖了传统的数据结构和数值分析,并增加了数学模型和算法设计思想的介绍。 全书分四部分,*部分,介绍数据、数学模型和算法的基本概念,是全书的基础;数据结构部分从数学模型和问题的角度介绍线性结构、树结构、图结构,以及查找和排序这两种*常见的非数值问题;数值分析部分从问题的角度介绍误差分析、实数的表示和运算、一元非线性方程、线性方程组、拟合与插值、*化问题;第四部分,从算法设计思想的角度介绍蛮力法、分治法、贪心法、动态规划、搜索算法和*算法,以及求解具体问题时的应用实例。
|
關於作者: |
作者简介:吴及,清华大学电子工程系副系主任,长聘副教授,博士生导师。1996年和2001年在清华大学电子工程系获得学士和工学博士学位。20132015年在美国佐治亚理工学院担任访问学者。主要从事数据与算法方面的教学工作,以及人工智能和大数据领域的研究工作。2006起担任清华-讯飞语音技术联合实验室主任。目前是中国语音产业联盟技术工作组组长。先后获得2011年度国家科技进步二等奖和2014年度北京市科学技术奖一等奖。已在国内外刊物和学术会议上发表论文一百余篇,现在为IEEE高级会员。
陈健生,博士,出生于安徽省芜湖市,毕业于清华大学计算机科学与技术系(学士、硕士)和香港中文大学计算机科学与工程系(博士)。目前在清华大学电子工程系任副教授,博士生导师。教学方面,担任电子系本科生核心课数据与算法及限选课视听信息系统导论的主讲教师;曾获清华大学第六届青年教师教学大赛理工科一等奖。主要研究领域为计算机视觉与机器学习。在国际期刊及会议上发表有多篇论文,曾获2013年度北京市科学技术奖一等奖。
白铂,男,1982年生于陕西西安,2004年毕业于西安电子科技大学,获学士学位,陕西省优秀毕业生。2010毕业于清华大学,获博士学位,电子系学术新秀。20102012年在香港科技大学做博士后研究。随后,进入清华大学电子系任讲师,硕士生导师。曾获2016年清华大学青年教师教学基本功大赛一等奖(理工组)。2017年加入华为技术有限公司2012实验室,任未来网络理论实验室高级研究员。研究方向包括无线协作资源分配、CloudFog-无线计算网络、网络信息论、网络大数据分析等。发表学术论文近80篇,其中SCI检索论文近30篇,曾获IEEE ICC 2016最佳论文奖。
|
目錄:
|
目录
第 1章数据、数学模型和算法 ................................................................................ 1
1.1数据时代 ................................................................................................... 1
1.1.1什么是数据 ..................................................................................... 1
1.1.2大数据时代 ..................................................................................... 2
1.1.3数据的重要性 .................................................................................. 4
1.2数据的表示 ................................................................................................ 5
1.2.1二元关系及其性质 ........................................................................... 5
1.2.2数据的逻辑结构 .............................................................................. 9
1.2.3数据的存储结构 .............................................................................12
1.2.4抽象数据类型 .................................................................................12
1.3数学模型 ..................................................................................................13
1.3.1什么是数学模型 .............................................................................13
1.3.2数学模型的种类 .............................................................................14
1.3.3数学模型与计算机 ..........................................................................15
1.3.4数据结构 .......................................................................................16
1.4算法及复杂度分析 .....................................................................................16
1.4.1什么是算法 ....................................................................................16
1.4.2问题与解 .......................................................................................17
1.4.3算法的分析与评价 ..........................................................................18
1.5本章小结 ..................................................................................................22
第 2章线性结构...................................................................................................24
2.1线性表 .....................................................................................................24
2.1.1线性表的概念及其抽象数据类型 ......................................................24
2.1.2线性表的顺序存储顺序表 .........................................................27
2.1.3线性表的链式存储链表 .............................................................30
2.1.4线性表小结 ....................................................................................35
2.2栈 ............................................................................................................35
2.2.1栈的概念与实现 .............................................................................35
2.2.2栈的应用 .......................................................................................38
2.2.3递归 ..............................................................................................41
2.3队列 .........................................................................................................48
2.3.1队列的概念与实现 ..........................................................................48
2.3.2优先级队列 ....................................................................................51
2.4字符串 .....................................................................................................55
2.4.1字符串的概念和 ADT ......................................................................55
2.4.2字符串的存储表示 ..........................................................................56
2.4.3字符串的模式匹配和简单匹配算法 ...................................................57
2.4.4 KMP算法 .....................................................................................58
2.5本章小结 ..................................................................................................61
第 3章树与二叉树 ...............................................................................................62
3.1树的基本概念 ...........................................................................................62
3.1.1普遍存在的树结构 ..........................................................................62
3.1.2树的定义和性质 .............................................................................65
3.2二叉树 .....................................................................................................67
3.2.1二叉树的定义和性质 .......................................................................68
3.2.2二叉树的表示和实现 .......................................................................70
3.2.3二叉树的遍历 .................................................................................76
3.2.4二叉树运算 ....................................................................................81
3.2.5二叉树的建立 .................................................................................83
3.3二叉树的应用 ...........................................................................................84
3.3.1表达式求值 ....................................................................................84
3.3.2二叉搜索树 ....................................................................................85
3.3.3 Hu.man树与编码 ..........................................................................89
3.3.4堆 .................................................................................................95
3.4并查集 ................................................................................................... 102
3.5本章小结 ................................................................................................ 103
第 4章图........................................................................................................... 105
4.1图的基本概念 ......................................................................................... 105
4.1.1图的定义和概念 ........................................................................... 105
4.1.2图的抽象数据类型 ........................................................................ 110
4.1.3欧拉路径 ..................................................................................... 110
4.2图的存储结构 ......................................................................................... 112
4.2.1图的邻接矩阵表示 ........................................................................ 112
4.2.2图的邻接表表示 ........................................................................... 115
4.2.3图的其他表示方法 ........................................................................ 119
4.3图的遍历 ................................................................................................ 122
4.3.1图的深度优先遍历 ........................................................................ 123
目录 IX4.3.2图的广度优先遍历 ........................................................................ 124
4.3.3图遍历的应用 ............................................................................... 125
4.3.4图的连通性 .................................................................................. 128
4.4有向图与有向无环图 ............................................................................... 129
4.4.1有向图的连通性和传递闭包 ........................................................... 129
4.4.2有向无环图和拓扑排序 ................................................................. 132
4.4.3关键路径 ..................................................................................... 135
4.5最小生成树 ............................................................................................. 137
4.5.1图的生成树与最小生成树 .............................................................. 137
4.5.2普里姆 Prim算法 ...................................................................... 139
4.5.3克鲁斯卡尔 Kruskal算法 ............................................................ 142
4.6最短路径问题 ......................................................................................... 144
4.6.1单源最短路径 ............................................................................... 145
4.6.2全源最短路径 ............................................................................... 147
4.7最大流 ................................................................................................... 149
4.7.1网络流的基本概念 ........................................................................ 150
4.7.2 Ford-Fulkerson方法 ..................................................................... 151
4.8匹配 ....................................................................................................... 154
4.8.1二分图和匹配的基本概念 .............................................................. 154
4.8.2匈牙利算法 .................................................................................. 155
4.8.3最大匹配与最大流 ........................................................................ 157
4.9本章小结 ................................................................................................ 157
第 5章查找和排序 ............................................................................................. 159
5.1线性查找表 ............................................................................................. 159
5.1.1顺序查找 ..................................................................................... 160
5.1.2折半查找 ..................................................................................... 161
5.1.3斐波那契查找 ............................................................................... 162
5.1.4线性查找表的性能比较 ................................................................. 163
5.2静态索引结构 ......................................................................................... 164
5.2.1索引查找 ..................................................................................... 164
5.2.2索引存储方式 ............................................................................... 164
5.2.3索引文件结构 ............................................................................... 167
5.3二叉搜索树查找性能 ............................................................................... 169
5.4散列方法 ................................................................................................ 172
5.4.1散列技术的基本思想 ..................................................................... 172
5.4.2散列函数 ..................................................................................... 173
5.4.3冲突处理 ..................................................................................... 175
5.4.4散列的删除 .................................................................................. 178
5.4.5散列的性能 .................................................................................. 178
5.5排序的概念及算法性能分析 ..................................................................... 179
5.6基本排序方法 ......................................................................................... 180
5.6.1冒泡排序 ..................................................................................... 181
5.6.2插入排序 ..................................................................................... 182
5.6.3直接选择排序 ............................................................................... 187
5.6.4基本排序方法的比较 ..................................................................... 188
5.7快速排序 ................................................................................................ 189
5.7.1快速排序的过程 ........................................................................... 189
5.7.2快速排序的性能分析 ..................................................................... 191
5.8归并排序 ................................................................................................ 192
5.8.1二路归并 ..................................................................................... 192
5.8.2自底向上的归并排序 ..................................................................... 192
5.8.3自顶向下的归并排序 ..................................................................... 194
5.9堆和堆排序 ............................................................................................. 195
5.9.1堆排序的思想 ............................................................................... 195
5.9.2堆排序的实现 ............................................................................... 197
5.10内排序方法分析 .................................................................................... 198
5.10.1排序方法的下界 ........................................................................ 198
5.10.2内排序方法的比较 ..................................................................... 199
5.11本章小结 .............................................................................................. 200
第 6章数值计算问题 .......................................................................................... 202
6.1引言 ....................................................................................................... 202
6.2近似与误差 ............................................................................................. 204
6.2.1误差的定义 .................................................................................. 204
6.2.2误差的分类 .................................................................................. 209
6.2.3条件数与敏感性 ........................................................................... 212
6.3实数的表示与运算 ................................................................................... 214
6.3.1浮点数系统 .................................................................................. 214
6.3.2浮点运算 ..................................................................................... 217
6.4一元方程求解 ......................................................................................... 219
6.4.1一元方程 ..................................................................................... 219
6.4.2二分法 ......................................................................................... 220
6.4.3不动点法 ..................................................................................... 222
6.4.4牛顿法 ......................................................................................... 225
6.4.5迭代误差分析 ............................................................................... 229
6.5线性方程组求解 ...................................................................................... 232
6.5.1线性方程组 .................................................................................. 232
目录 XI6.5.2向量与矩阵范数 ........................................................................... 234
6.5.3线性方程组敏感性 ........................................................................ 239
6.5.4线性方程组直接解法 ..................................................................... 242
6.5.5线性方程组迭代解法 ..................................................................... 252
6.6拟合与插值 ............................................................................................. 256
6.6.1线性最小二乘 ............................................................................... 256
6.6.2多项式插值 .................................................................................. 264
6.7本章小结 ................................................................................................ 267
第 7章最优化初步 ............................................................................................. 268
7.1优化问题及其性质 ................................................................................... 268
7.2无约束优化问题 ...................................................................................... 271
7.2.1优化条件 ..................................................................................... 271
7.2.2一维优化 ..................................................................................... 272
7.2.3多维优化 ..................................................................................... 275
7.3约束优化问题 ......................................................................................... 279
7.3.1优化条件 ..................................................................................... 279
7.3.2序列二次规划法 ........................................................................... 282
7.3.3障碍法 ......................................................................................... 284
7.4凸优化 ................................................................................................... 286
7.4.1凸集合 ......................................................................................... 286
7.4.2凸函数 ......................................................................................... 289
7.4.3凸优化问题 .................................................................................. 292
7.5组合优化的数值求解 ............................................................................... 294
7.5.1组合优化问题 ............................................................................... 294
7.5.2线性规划初步 ............................................................................... 296
7.5.3顶点覆盖的线性规划求解 .............................................................. 297
7.6本章小结 ................................................................................................ 298
第 8章随机算法................................................................................................. 299
8.1随机性与随机数 ...................................................................................... 299
8.2舍伍德与拉斯维加斯算法 ......................................................................... 301
8.3蒙特卡洛算法 ......................................................................................... 304
8.4模拟退火与遗传算法 ............................................................................... 307
8.5本章小结 ................................................................................................ 310
第 9章算法设计思想 .......................................................................................... 311
9.1蛮力法 ................................................................................................... 311
9.2分治法 ................................................................................................... 313
9.2.1分治法的运行时间 ........................................................................ 314
9.2.2分治法应用举例 ........................................................................... 316
9.2.3减治法 ......................................................................................... 319
9.2.4变治法 ......................................................................................... 321
9.3贪心法 ................................................................................................... 323
9.4动态规划 ................................................................................................ 326
9.4.1动态规划的基本原理 ..................................................................... 326
9.4.2算法设计举例 ............................................................................... 328
9.5搜索算法:回溯法与分支定界法 ............................................................... 334
9.5.1组合优化问题的解空间 ................................................................. 334
9.5.2回溯法 ......................................................................................... 338
9.5.3分支定界法 .................................................................................. 342
|
內容試閱:
|
序言前言
近年来,信息科学技术呈现快速发展的态势,云计算、移动互联网、大数据、人工智能,给我们所处的时代和社会带来了一波又一波的冲击。人们日常生活中的信息获取方式、社会交往方式、生产工作方式都已经发生了很大的变化,而且更为巨大的变化似乎就在并不遥远的未来。我们的教学和人才培养模式如何能够适应这样的变化,对于高等教育的从业者来说是一个严峻的挑战。为了解决膨胀的知识量与有限的学制之间的矛盾,提高教学效率和质量,培养拔尖型创新人才,清华大学电子工程系进行了全面的教学改革。在梳理出电子信息科学知识构架的基础上,构建起了全新的课程体系,数据与算法就是其中的一门核心课程。数据是客观世界的描述,是信息的载体,也是算法的处理对象;算法是解决问题的方法和步骤,是处理数据的系统。因此数据与算法的关系,本质上是信息载体与系统的相互作用。同时,数据的特性是算法设计中不可忽视的关键性因素,对数据特性利用得越充分,算法的性能和效率就越高,但与此同时,算法的针对性越强,适用面也就越窄。传统上数据结构和数值分析是两门课程,前者主要研究非数值问题,后者主要研究数值问题。但是,当我们上升到更宏观的视角,也就是数据与算法相互关系的视角,我们就能够更清楚地认识到两者之间的共性和差异。从共性上来讲,它们都把现实世界的问题简化成为数学模型上的问题,并利用计算机作为工具加以求解,因此有很多算法思想不仅能用于处理非数值问题,也能有效地处理数值问题。例如,二分法既可以用于实现有序线性表的高效查找,又可以用于求解非线性方程;寻找图的最小生成树的 Prim算法、 Kruskal算法和求解多维函数极值的最速下降法都是基于贪心算法的思想。数值和非数值问题的差异也很显著,数值问题中变量取值是连续的,符合一定精度要求的近似解可能有无穷多个,只需要得到符合精度要求的近似解就足够了,因此误差分析在数值分析中处于基础性的地位;而非数值问题的解空间是离散的,不需要考虑误差。在实际应用中,数值问题和非数值问题还经常交织在一起,例如搜索引擎已经成为人们获取信息的主要方式,在其实现过程中就既有非数值问题,也有数值问题。数据和算法的覆盖范围包括了传统上的数据结构、数值分析两门课程,同时还特别加入了数学模型和算法设计思想的部分,并从总体上对内容上进行了取舍。我们希望这门新设计的课程,能够让同学在学习过程中更清楚地看到数据和算法的相互关系,更透彻地理解数值和非数值问题的差异和共性,更全面地提升利用计算机作为工具解决实际问题的能力,为今后的学习和未来的发展打下扎实的基础。全书共有 9章,分为四个部分。第一部分是第 1章,介绍了数据,算法和数学模型的基本概念,是全书的基础。第二部分是第 2~5章,包括线性结构、树结构和图结构,以及查找、排序两种最常用的非数值问题及其求解,是传统数据结构的内容。第三部分是第 6、7章,包括数值问题和最优化的初步介绍,讨论的是数值问题。第四部分是第 8、9章,介绍了随机算法和算法设计思想。本书第 1、2、4、5章由吴及负责撰写;第 6、7、8章由陈健生负责撰写;白铂撰写了第 3和第 9章,并参与了第 4和第 7章的部分工作。由于编者水平有限,疏误之处在所难免,敬请同行及各界读者批评指正。作为突破传统教学模式和内容组织方式的一次尝试,我们也希望这样的努力能够成为电子信息学科教学改革的有益探索。编者2017年 8月
|
|