书籍详情
《数据结构与算法经典问题解析:Java语言描述纳拉西姆哈&#,》[58M]百度网盘|亲测有效|pdf下载
  • 数据结构与算法经典问题解析:Java语言描述纳拉西姆哈&#,

  • 出版社:网书网图书专营店
  • 出版时间:2016-06
  • 热度:11260
  • 上架时间:2024-06-30 09:38:03
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

基本信息

书名:数据结构与算法经典问题解析:Java语言描述(原书第2版)

定价:79元

作者:纳拉西姆哈•, 卡鲁曼希(Narasimha Karumanchi), 骆嘉伟

出版社:机械工业出版社

出版日期:2016-06-24

ISBN:9787111538455

字数:388

页码:443

版次:1

装帧:平装

开本:16开

商品重量:

编辑推荐


纳拉辛哈·卡鲁曼希编著的《数据结构与算法经典问题解析(Java语言描述原书第2版)》以Java为描述语言,介绍计算机编程中使用的数据结构和算法,覆盖相应竞争性考试的主题,目的不是提供关于数据结构和算法的定理及证明,而是强调问题及其分析,讲解知识和解题技巧。书中汇集知名IT企业经典的编程面试题目并给出解题思路,为学生应试和软件开发人员面试提供有益指导。

内容提要


本书以Java为描述语言,介绍了数据结构与算法的基本知识。书中结合企业界的工程实践提炼教学内容,特别对数据结构中易混淆的问题进行了梳理,对每一个问题提出不同的解决方案。本书是一本的数据结构方面的教材。

目录


目录

译者序
前言
章绪论1
11变量1
12数据类型1
13数据结构2
14抽象数据类型2
15什么是算法3
16为什么需要算法分析3
17算法分析的目的3
18什么是运行时间分析4
19如何比较算法4
110什么是增长率4
111常用的增长率4
112分析的类型5
113渐近表示6
114大O表示法6
115Ω表示法7
116Θ表示法8
117重要说明9
118为什么称为渐近分析9
119渐近分析指南9
120渐近表示法的性质11
121常用的对数和累加公式11
122分治法主定理12
123分治法主定理的相关问题12
124问题规模减小和递归求解主定理13
125问题规模减小和递归求解主定理的变型13
126猜测和确认的方法14
127平摊分析15
128算法分析的相关问题15
第2章递归和回溯28
21引言28
22什么是递归28
23为什么要用递归28
24递归函数的格式28
25递归和内存(可视化)29
26递归与迭代30
27递归说明30
28递归算法的经典用例30
29递归的相关问题31
210什么是回溯32
211回溯算法的经典用例32
212回溯的相关问题32
第3章链表34
31什么是链表34
32链表抽象数据类型34
33为什么要用链表35
34数组概述35
35链表、数组和动态数组的比较36
36单向链表36
37双向链表41
38循环链表46
39一种存储高效的双向链表51
310松散链表52
311链表的相关问题55
第4章栈72
41什么是栈72
42如何使用栈72
43栈抽象数据类型73
44异常73
45应用73
46实现73
47栈的各种实现方法比较77
48栈的相关问题78
第5章队列98
51什么是队列98
52如何使用队列98
53队列抽象数据类型99
54异常99
55应用99
56实现99
57队列的相关问题104
第6章树110
61什么是树110
62术语110
63二叉树111
64二叉树的遍历114
65通用树(N叉树)135
66线索(无栈或无队列结构)二叉树遍历141
67表达式树147
68异或树149
69二叉搜索树150
610平衡二叉搜索树164
611AVL树165
612树的其他形式178
6121红黑树178
6122伸展树179
6123增强树179
6124替罪羊树179
6125区间树180
第7章优先队列和堆181
71什么是优先队列181
72优先队列ADT181
73优先队列的应用182
74优先队列的实现182
75堆和二叉堆183
76二叉堆184
77优先队列(堆)的相关问题190
第8章并查集ADT201
81引言201
82等价关系和等价类201
83并查集ADT202
84应用202
85并查集ADT实现中的权衡202
86快速UNION实现(慢FIND)203
87快速UNION实现(快速FIND)206
88路径压缩208
89小结209
810并查集的相关问题209
第9章图算法211
91引言211
92术语211
93图的应用214
94图的表示214
95图的遍历217
96拓扑排序225
97 短路径算法226
98 小生成树231
99图算法的相关问题235
0章排序256
101什么是排序256
102为什么需要排序256
103排序的分类256
104其他分类方法257
105冒泡排序257
106选择排序258
107插入排序259
108希尔排序261
109归并排序262
1010堆排序264
1011快速排序264
1012树排序266
1013排序算法比较267
1014线性排序算法267
1015计数排序267
1016桶排序268
1017基数排序268
1018拓扑排序269
1019外部排序269
1020排序的相关问题270
1章查找279
111什么是查找279
112为什么需要查找279
113查找的类型279
114符号表和散列281
115字符串查找算法281
116查找的相关问题281
2章选择算法(中位数)304
121什么是选择算法304
122基于排序的选择算法304
123基于划分的选择算法304
124线性选择算法--中位数的中位数算法305
125按照排序顺序查找K个 小元素305
126选择算法的相关问题305
3章符号表314
131引言314
132什么是符号表314
133符号表的实现315
134符号表实现方法的比较315
4章散列317
141什么是散列317
142为什么用散列317
143散列表ADT317
144散列的例子317
145散列的组成部分319
146散列表319
147散列函数319
148负载因子320
149冲突320
1410冲突解决技术320
1411分离链接法320
1412开放定址法321
1413冲突解决技术的比较322
1414散列如何达到O(1)的时间复杂度322
1415散列技术323
1416不适用散列表的问题323
1417布鲁姆过滤器323
1418散列的相关问题325
5章字符串算法335
151引言335
152字符串匹配算法335
153蛮力法336
154RobinKarp字符串匹配算法336
155基于有限自动机的字符串匹配算法337
156KMP算法338
157BoyceMoore算法342
158存储字符串的数据结构342
159字符串的散列表实现342
1510字符串的二叉搜索树实现343
1511键树343
1512三叉搜索树345
1513二叉搜索树、键树和三叉搜索树的比较349
1514后缀树349
1515字符串的相关问题353
6章算法设计技术361
161引言361
162分类361
163按实现方法分类361
164按设计方法分类362
165其他分类法363
7章贪婪算法364
171引言364
172贪婪策略的定义364
173贪婪算法的要素364
174贪婪算法的适用范围365
175贪婪算法的优缺点365
176贪婪算法的应用365
177贪婪思想365
178贪婪算法的相关问题368
8章分治算法375
181引言375
182分治策略的定义375
183分治法的适用范围375
184分治法的图形化描述375
185分治思想376
186主定理377
187分治法的应用377
188分治法的相关问题378
9章动态规划算法390
191引言390
192动态规划策略的定义390
193动态规划策略的性质390
194动态规划的适用范围390
195动态规划的实现方法391
196动态规划算法的例子391
197动态规划思想391
198动态规划的相关问题396
第20章复杂度类型425
201引言425
202多项式/指数时间425
203决策问题的定义426
204决策过程426
205复杂度类型的定义426
206复杂度类型426
207归约428
208复杂度类型的相关问题430
第21章杂谈433
211引言433
212位运算的使用433
2121按位与操作433
2122按位或操作434
2123按位异或操作434
2124按位左移操作434
2125按位右移操作434
2126按位补操作434
2127检测第K位是否置位434
2128第K位置位435
2129第K位清零435
21210切换第K位435
21211切换值为1的 右位435
21212隔离值为1的 右位435
21213隔离值为0的 右位435
21214检查某个数是否是2的幂436
21215将某个数乘以2的幂436
21216将某个数除以2的幂436
21217找到给定操作数的模436
21218反转二进制数436
21219位值1的计数436
21220创建末尾位为0的掩码437
21221交换奇偶位438
21222不使用除法来计算平均数438
213其他编程问题438
参考文献442

作者介绍


作者:(印)纳拉辛哈·卡鲁曼希 译者:骆嘉伟 译者:李晓鸿 译者:肖正 译者:吴帆
纳拉辛哈·卡鲁曼希,在尼赫鲁科技大学获得计算机科学学士学位,在印度理工学院孟买分校获得计算机科学硕士学位。他是印度公司资深的软件开发工程师,之前曾就职于IBM和微软公司。他善于用轻松、浅显的方式编写技术书籍,其作品在上深受好评。他曾在各种培训中心和大学教授数据结构和算法课程。

序言