图书介绍

数据结构与算法经典问题解析 Java语言描述PDF|Epub|txt|kindle电子书版本网盘下载

数据结构与算法经典问题解析 Java语言描述
  • (印)纳拉辛哈·卡鲁曼希(Narasimha Karumanchi)著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111538455
  • 出版时间:2016
  • 标注页数:443页
  • 文件大小:159MB
  • 文件页数:455页
  • 主题词:数据结构;算法分析;JAVA语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

数据结构与算法经典问题解析 Java语言描述PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 绪论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.11 AVL树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

第10章 排序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

第11章 查找279

11.1 什么是查找279

11.2 为什么需要查找279

11.3 查找的类型279

11.4 符号表和散列281

11.5 字符串查找算法281

11.6 查找的相关问题281

第12章 选择算法(中位数)304

12.1 什么是选择算法304

12.2 基于排序的选择算法304

12.3 基于划分的选择算法304

12.4 线性选择算法——中位数的中位数算法305

12.5 按照排序顺序查找K个最小元素305

12.6 选择算法的相关问题305

第13章 符号表314

13.1 引言314

13.2 什么是符号表314

13.3 符号表的实现315

13.4 符号表实现方法的比较315

第14章 散列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

第15章 字符串算法335

15.1 引言335

15.2 字符串匹配算法335

15.3 蛮力法336

15.4 Robin-Karp字符串匹配算法336

15.5 基于有限自动机的字符串匹配算法337

15.6 KMP算法338

15.7 Boyce-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

第16章 算法设计技术361

16.1 引言361

16.2 分类361

16.3 按实现方法分类361

16.4 按设计方法分类362

16.5 其他分类法363

第17章 贪婪算法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

第18章 分治算法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

第19章 动态规划算法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

热门推荐