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

本书特色

[

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

]

内容简介

[

 

 

]

目录

目录译者序前言第1章绪论11��1变量11��2数据类型11��3数据结构21��4抽象数据类型21��5什么是算法31��6为什么需要算法分析31��7算法分析的目的31��8什么是运行时间分析41��9如何比较算法41��10什么是增长率41��11常用的增长率41��12分析的类型51��13渐近表示61��14大o表示法61��15ω表示法71��16θ表示法81��17重要说明91��18为什么称为渐近分析91��19渐近分析指南91��20渐近表示法的性质111��21常用的对数和累加公式111��22分治法主定理121��23分治法主定理的相关问题121��24问题规模减小和递归求解主定理131��25问题规模减小和递归求解主定理的变型131��26猜测和确认的方法141��27平摊分析151��28算法分析的相关问题15第2章递归和回溯282��1引言282��2什么是递归282��3为什么要用递归282��4递归函数的格式282��5递归和内存(可视化)292��6递归与迭代302��7递归说明302��8递归算法的经典用例302��9递归的相关问题312��10什么是回溯322��11回溯算法的经典用例322��12回溯的相关问题32第3章链表343��1什么是链表343��2链表抽象数据类型343��3为什么要用链表353��4数组概述353��5链表、数组和动态数组的比较363��6单向链表363��7双向链表413��8循环链表463��9一种存储高效的双向链表513��10松散链表523��11链表的相关问题55第4章栈724��1什么是栈724��2如何使用栈724��3栈抽象数据类型734��4异常734��5应用734��6实现734��7栈的各种实现方法比较774��8栈的相关问题78第5章队列985��1什么是队列985��2如何使用队列985��3队列抽象数据类型995��4异常995��5应用995��6实现995��7队列的相关问题104第6章树1106��1什么是树1106��2术语1106��3二叉树1116��4二叉树的遍历1146��5通用树(n叉树)1356��6线索(无栈或无队列结构)二叉树遍历1416��7表达式树1476��8异或树1496��9二叉搜索树1506��10平衡二叉搜索树1646��11avl树1656��12树的其他形式1786��12��1红黑树1786��12��2伸展树1796��12��3增强树1796��12��4替罪羊树1796��12��5区间树180第7章优先队列和堆1817��1什么是优先队列1817��2优先队列adt1817��3优先队列的应用1827��4优先队列的实现1827��5堆和二叉堆1837��6二叉堆1847��7优先队列(堆)的相关问题190第8章并查集adt2018��1引言2018��2等价关系和等价类2018��3并查集adt2028��4应用2028��5并查集adt实现中的权衡2028��6快速union实现(慢find)2038��7快速union实现(快速find)2068��8路径压缩2088��9小结2098��10并查集的相关问题209第9章图算法2119��1引言2119��2术语2119��3图的应用2149��4图的表示2149��5图的遍历2179��6拓扑排序2259��7*短路径算法2269��8*小生成树2319��9图算法的相关问题235第10章排序25610��1什么是排序25610��2为什么需要排序25610��3排序的分类25610��4其他分类方法25710��5冒泡排序25710��6选择排序25810��7插入排序25910��8希尔排序26110��9归并排序26210��10堆排序26410��11快速排序26410��12树排序26610��13排序算法比较26710��14线性排序算法26710��15计数排序26710��16桶排序26810��17基数排序26810��18拓扑排序26910��19外部排序26910��20排序的相关问题270第11章查找27911��1什么是查找27911��2为什么需要查找27911��3查找的类型27911��4符号表和散列28111��5字符串查找算法28111��6查找的相关问题281第12章选择算法(中位数)30412��1什么是选择算法30412��2基于排序的选择算法30412��3基于划分的选择算法30412��4线性选择算法——中位数的中位数算法30512��5按照排序顺序查找k个*小元素30512��6选择算法的相关问题305第13章符号表31413��1引言31413��2什么是符号表31413��3符号表的实现31513��4符号表实现方法的比较315第14章散列31714��1什么是散列31714��2为什么用散列31714��3散列表adt31714��4散列的例子31714��5散列的组成部分31914��6散列表31914��7散列函数31914��8负载因子32014��9冲突32014��10冲突解决技术32014��11分离链接法32014��12开放定址法32114��13冲突解决技术的比较32214��14散列如何达到o(1)的时间复杂度32214��15散列技术32314��16不适用散列表的问题32314��17布鲁姆过滤器32314��18散列的相关问题325第15章字符串算法33515��1引言33515��2字符串匹配算法33515��3蛮力法33615��4robin�瞜arp字符串匹配算法33615��5基于有限自动机的字符串匹配算法33715��6kmp算法33815��7boyce�瞞oore算法34215��8存储字符串的数据结构34215��9字符串的散列表实现34215��10字符串的二叉搜索树实现34315��11键树34315��12三叉搜索树34515��13二叉搜索树、键树和三叉搜索树的比较34915��14后缀树34915��15字符串的相关问题353第16章算法设计技术36116��1引言36116��2分类36116��3按实现方法分类36116��4按设计方法分类36216��5其他分类法363第17章贪婪算法36417��1引言36417��2贪婪策略的定义36417��3贪婪算法的要素36417��4贪婪算法的适用范围36517��5贪婪算法的优缺点36517��6贪婪算法的应用36517��7贪婪思想36517��8贪婪算法的相关问题368第18章分治算法37518��1引言37518��2分治策略的定义37518��3分治法的适用范围37518��4分治法的图形化描述37518��5分治思想37618��6主定理37718��7分治法的应用37718��8分治法的相关问题378第19章动态规划算法39019��1引言39019��2动态规划策略的定义39019��3动态规划策略的性质39019��4动态规划的适用范围39019��5动态规划的实现方法39119��6动态规划算法的例子39119��7动态规划思想39119��8动态规划的相关问题396第20章复杂度类型42520��1引言42520��2多项式/指数时间42520��3决策问题的定义42620��4决策过程42620��5复杂度类型的定义42620��6复杂度类型42620��7归约42820��8复杂度类型的相关问题430第21章杂谈43321��1引言43321��2位运算的使用43321��2��1按位与操作43321��2��2按位或操作43421��2��3按位异或操作43421��2��4按位左移操作43421��2��5按位右移操作43421��2��6按位补操作43421��2��7检测第k位是否置位43421��2��8第k位置位43521��2��9第k位清零43521��2��10切换第k位43521��2��11切换值为1的*右位43521��2��12隔离值为1的*右位43521��2��13隔离值为0的*右位43521��2��14检查某个数是否是2的幂43621��2��15将某个数乘以2的幂43621��2��16将某个数除以2的幂43621��2��17找到给定操作数的模43621��2��18反转二进制数43621��2��19位值1的计数43621��2��20创建末尾位为0的掩码43721��2��21交换奇偶位43821��2��22不使用除法来计算平均数43821��3其他编程问题438参考文献442

封面

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

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

作者:卡鲁曼希

页数:443

定价:¥79.0

出版社:机械工业出版社

出版日期:2016-06-01

ISBN:9787111538455

PDF电子书大小:39MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注