计算机科学丛书数据结构与算法分析:C语言描述(原书第2版)典藏版

本书特色

[

本书是国外数据结构与算法分析方面的标准教材,介绍了数据结构(大量数据的组织方法)以及算法分析(算法运行时间的估算)。本书的编写目标是同时讲授好的程序设计和算法分析技巧,使读者可以开发出具有*高效率的程序。
本书可作为高级数据结构课程或研究生一年级算法分析课程的教材,使用本书需具有一些中级程序设计知识,还需要离散数学的一些背景知识。

]

内容简介

[

本书是国外数据结构与算法分析方面的标准教材,介绍了数据结构(大量数据的组织方法)以及算法分析(算法运行时间的估算)。本书的编写目标是同时讲授好的程序设计和算法分析技巧,使读者可以开发出具有*高效率的程序。本书可作为不错数据结构课程或研究生一年级算法分析课程的教材,使用本书需具有一些中级程序设计知识,还需要离散数学的一些背景知识。

]

作者简介

[

【加照片】
马克·艾伦·维斯(Mark Allen Weiss)佛罗里达国际大学计算与信息科学学院教授、副院长,本科教育主任和研究生教育主任。他于1987年获得普林斯顿大学计算机科学博士学位,师从Robert Sedgewick。 他曾经担任全美AP(Advanced Placement)考试计算机学科委员会的主席(2000-2004)。他的主要研究兴趣是数据结构、算法和教育学。他编写的关于数据结构与算法方面的知名教材还有《Data Structures and Algorithm Analysis : in Java》《Data Structures and Algorithm Analysis : in C 》《Data Structures and Problem Solving : Using Java》《Data Structures and Problem Solving : Using C 》。

]

目录

出版者的话译者序前言第1章 引论┊11.1 本书讨论的内容┊21.2 数学知识复习┊31.2.1 指数┊31.2.2 对数┊31.2.3 级数┊41.2.4 模运算┊51.2.5 证明方法┊51.3 递归简论┊7总结┊10练习┊10参考文献┊11第2章 算法分析┊132.1 数学基础┊142.2 模型┊162.3 要分析的问题┊162.4 运行时间计算┊182.4.1 一个简单的例子┊182.4.2 一般法则┊192.4.3 *大子序列和┊202.4.4 运行时间中的对数┊242.4.5 检验你的分析┊272.4.6 分析结果的准确性┊28总结┊28练习┊29参考文献┊32第3章 表、栈和队列┊353.1 抽象数据类型┊363.2 表ADT┊363.2.1 表的简单数组实现┊373.2.2 链表┊373.2.3 程序设计细节┊383.2.4 常见的错误┊423.2.5 双链表┊433.2.6 循环链表┊433.2.7 例子┊433.2.8 链表的游标实现┊473.3 栈ADT┊503.3.1 栈模型┊503.3.2 栈的实现┊513.3.3 应用┊563.4 队列ADT┊623.4.1 队列模型┊623.4.2 队列的数组实现┊623.4.3 队列的应用┊65总结┊66练习┊66第4章 树┊714.1 预备知识┊724.1.1 树的实现┊734.1.2 树的遍历及应用┊744.2 二叉树┊764.2.1 实现┊774.2.2 表达式树┊774.3 查找树ADT——二叉查找树┊804.3.1 MakeEmpty┊804.3.2 Find┊814.3.3 FindMin和FindMax┊814.3.4 Insert┊814.3.5 Delete┊834.3.6 平均情形分析┊844.4 AVL树┊864.4.1 单旋转┊884.4.2 双旋转┊904.5 伸展树┊954.5.1 一个简单的想法┊964.5.2 展开┊974.6 树的遍历┊1024.7 B树┊103总结┊107练习┊108参考文献┊113第5章 散列┊1175.1 一般想法┊1185.2 散列函数┊1185.3 分离链接法┊1205.4 开放定址法┊1235.4.1 线性探测法┊1245.4.2 平方探测法┊1255.4.3 双散列┊1295.5 再散列┊1305.6 可扩散列┊132总结┊133练习┊134参考文献┊137第6章 优先队列(堆)┊1396.1 模型┊1406.2 一些简单的实现┊1416.3 二叉堆┊1416.3.1 结构性质┊1416.3.2 堆序性质┊1426.3.3 基本的堆操作┊1436.3.4 其他的堆操作┊1466.4 优先队列的应用┊1496.4.1 选择问题┊1496.4.2 事件模拟┊1506.5 d-堆┊1516.6 左式堆┊1526.6.1 左式堆的性质┊1526.6.2 左式堆的操作┊1536.7 斜堆┊1586.8 二项队列┊1596.8.1 二项队列结构┊1596.8.2 二项队列操作┊1606.8.3 二项队列的实现┊162总结┊165练习┊166参考文献┊169第7章 排序┊1737.1 预备知识┊1747.2 插入排序┊1747.2.1 算法┊1747.2.2 插入排序的分析┊1757.3 一些简单排序算法的下界┊1757.4 希尔排序┊1767.5 堆排序┊1797.6 归并排序┊1827.7 快速排序┊1867.7.1 选取枢纽元┊1877.7.2 分割策略┊1887.7.3 小数组┊1907.7.4 实际的快速排序例程┊1907.7.5 快速排序的分析┊1927.7.6 选择的线性期望时间算法┊1947.8 大型结构的排序┊1957.9 排序的一般下界┊1967.10 桶式排序┊1987.11 外部排序┊1987.11.1 为什么需要新的算法┊1987.11.2 外部排序模型┊1997.11.3 简单算法┊1997.11.4 多路合并┊2007.11.5 多相合并┊2017.11.6 替换选择┊202总结┊203练习┊204参考文献┊207第8章 不相交集ADT┊2098.1 等价关系┊2108.2 动态等价性问题┊2108.3 基本数据结构┊2128.4 灵巧求并算法┊2148.5 路径压缩┊2168.6 按秩求并和路径压缩的*坏情形┊2178.7 一个应用┊221总结┊222练习┊222参考文献┊223第9章 图论算法┊2259.1 若干定义┊2269.2 拓扑排序┊2289.3 *短路径算法┊2309.3.1 无权*短路径┊2329.3.2 Dijkstra算法┊2359.3.3 具有负边值的图┊2409.3.4 无圈图┊2419.3.5 所有点对*短路径┊2439.4 网络流问题┊2439.5 *小生成树┊2479.5.1 Prim算法┊2489.5.2 Kruskal算法┊2509.6 深度优先搜索的应用┊2519.6.1 无向图┊2529.6.2 双连通性┊2539.6.3 欧拉回路┊2569.6.4 有向图┊2599.6.5 查找强分支┊2609.7 NP-完全性介绍┊2629.7.1 难与易┊2629.7.2 NP类┊2639.7.3 NP-完全问题┊264总结┊266练习┊266参考文献┊270第10章 算法设计技巧┊27310.1 贪婪算法┊27410.1.1 一个简单的调度问题┊27410.1.2 Huffman编码┊27610.1.3 近似装箱问题┊28010.2 分治算法┊28610.2.1 分治算法的运行时间┊28710.2.2 *近点问题┊28910.2.3 选择问题┊29110.2.4 一些运算问题的理论改进┊29410.3 动态规划┊29710.3.1 用一个表代替递归┊29810.3.2 矩阵乘法的顺序安排┊30010.3.3 *优二叉查找树┊30110.3.4 所有点对*短路径┊30410.4 随机化算法┊30610.4.1 随机数发生器┊30710.4.2 跳跃表┊31010.4.3 素性测试┊31210.5 回溯算法┊31410.5.1 收费公路重建问题┊31410.5.2 博弈┊318总结┊323练习┊323参考文献┊329第11章 摊还分析┊33311.1 一个无关的智力问题┊33411.2 二项队列┊33511.3 斜堆┊33911.4 斐波那契堆┊34111.4.1 切除左式堆中的节点┊34111.4.2 二项队列的懒惰合并┊34311.4.3 斐波那契堆操作┊34611.4.4 时间界的证明┊34611.5 伸展树┊348总结┊351练习┊351参考文献┊353第12章 高级数据结构及其实现┊35512.1 自顶向下伸展树┊35612.2 红黑树┊36112.2.1 自底向上插入┊36212.2.2 自顶向下红黑树┊36312.2.3 自顶向下删除┊36712.3 确定性跳跃表┊36812.4 AA树┊37312.5 treap树┊37812.6 k-d树┊37912.7 配对堆┊383总结┊387练习┊387参考文献┊389索引┊391

封面

计算机科学丛书数据结构与算法分析:C语言描述(原书第2版)典藏版

书名:计算机科学丛书数据结构与算法分析:C语言描述(原书第2版)典藏版

作者:[美]马克·艾伦·维斯(MarkAlle

页数:412

定价:¥79.0

出版社:机械工业出版社

出版日期:2019-04-01

ISBN:9787111621959

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

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

发表评论

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