社区
CSPrimer的课程社区_NO_1
手写CPU,操作系统,数据库,TCP/IP协议栈,算法
帖子详情
5.4.3最小生成树,Prim算法,Kruskal算法
csprimer
2024-08-17 11:05:31
课时名称
课时知识点
5.4.3最小生成树,Prim算法,Kruskal算法
加权无向图实现,最小生成树的实现Prim算法,Kruskal算法
...全文
446
回复
打赏
收藏
5.4.3最小生成树,Prim算法,Kruskal算法
课时名称课时知识点5.4.3最小生成树,Prim算法,Kruskal算法加权无向图实现,最小生成树的实现Prim算法,Kruskal算法
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
算法
第4版-谢路云译-带完整书签
本书带完整书签 第1章 基础 1 1.1 基础编程模型 4 1.1.1 Java程序的基本结构 4 1.1.2 原始数据类塑与表达式 6 1.1.3 语句 8 1.1.4 简便记法 9 1.1.5 数组 10 1.1.6 静态方法 12 1.1.7 API 16 1.1.8 字符串 20 1.1.9 输入输出 21 1.1.10 二分査找 28 1.1.11 展望 30 1.2 数据抽象 38 1.2.1 使用抽象数据类型 38 1.2.2 抽象数据类型举例 45 1.2.3 抽象教据类型的实现 52 1.2.4 更多抽象数据类型的实现 55 1.2.5 数据类型的设计 60 1.3 背包、队列和栈 74 1.3.1 API 74 1.3.2 集合类數据类型的实现 81 1.3.3 链表 89 1.3.4 综述 98 1.4
算法
分析 108 1.4.1 科学方法 108 1.4.2 观察 108 1.4.3 数学模型 112 1.4.4 增长数量级的分类 117 1.4.5 设计更快的
算法
118 1.4.6 倍率实验 121 1.4.7 注意事项 123 1.4.8 处理对于输入的依赖 124 1.4.9 内存 126 1.4.10 展望 129 1.5 案例研究:union-find
算法
136 1.5.1 动态连通性 136 1.5.2 实现 140 1.5.3 展望 148 第2章 排序 152 2.1 初级排序
算法
153 2.1.1 游戏规则 153 2.1.2 选择排序 155 2.1.3 插入排序 157 2.1.4 排序
算法
的可视化 159 2.1.5 比较两种排序
算法
159 2.1.6 希尔排序 162 2.2 归并排序 170 2.2.1 原地归并的抽象方法 170 2.2.2 自顶向下的归并排序 171 2.2.3 自底向上的归并排序 175 2.2.4 排序
算法
的复杂度 177 2.3 快速排序 182 2.3.1 基本
算法
182 2.3.2 性能特点 185 2.3.3
算法
改进 187 2.4 优先队列 195 2.4.1 API 195 2.4.2 初级实现 197 2.4.3 堆的定义 198 2.4.4 堆的
算法
199 2.4.5 堆排序 205 2.5 应用 214 2.5.1 将各种數据排序 214 2.5.2 我应该使用啷种排序
算法
218 2.5.3 问题的归约 219 2.5.4 排序应用一览 221 第3章查找 227 3.1 符号表 228 3.1.1 API 228 3.1.2 有序符号表 230 3.1.3 用例举例 233 3.1.4 无序链表中的顺序查找 235 3.1.5 有序數组中的二分查找 238 3.1.6 对二分査找的分析 242 3.1.7 预览 244 3.2 二叉查找
树
250 3.2.1 基本实现 250 3.2.2 分析 255 3.2.3 有序性相关的方法与删除操作 257 3.3 平衡査找
树
269 3.3.1 2-3査找
树
269 3.3.2 红黑二叉查找
树
275 3.3.3 实现 280 3.3.4 删除操作 282 3.3.5 红黑
树
的性质 284 3.4 散列表 293 3.4.1 散列函数 293 3.4.2 基于拉链法的散列表 297 3.4.3 基于线性探测法的散列表 300 3.4.4 调整教组大小 304 3.4.5 内存使用 306 3.5 应用 312 3.5.1 我应该使用符号表的哪种实现 312 3.5.2 集合的API 313 3.5.3 字典类用例 315 3.5.4 索引类用例 318 3.5.5 稀疏向量 322 第4章 图 329 4.1 无向图 331 4.1.1 术语表 331 4.1.2 表示无向图的数据类型 333 4.1.3 深度优先搜索 338 4.1.4 寻找路径 342 4.1.5 广度优先搜索 344 4.1.6 连通分量 349 4.1.7 符号图 352 4.1.8 总结 358 4.2 有向图 364 4.2.1 术语 364 4.2.2 有向图的数据类型 365 4.2.3 有向图中的可达性 367 4.2.4 环和有向无环图 369 4.2.5 有向图中的强连通性 378 4.2.6 总结 385 4.3 最小
生成
树
390 4.3.1 原理- 391 4.3.2 加权无向图的数据类型 393 4.3.3 最小
生成
树
的API和测试用例 396 4.3.4
Prim
算法
398 4.3.5
Prim
算法
的即时实现 401 4.3.6
Kruskal
算法
404 4.3.7 展望 407 4.4 最短路径 412 4.4.1 最短路径的性质 413 4.4.2 加权有向图的数据结构 414 4.4.3 最短路径
算法
的理论基础 420 4.4.4 Dijkstra
算法
421 4.4.5 无环加权有向图中的最短路径
算法
425 4.4.6 一般加权有向图中的最短路径问题 433 4.4.7 展望 445 第5章 字符串 451 5.1 字符串排序 455 5.1.1 键索引计数法 455 5.1.2 低位优先的字符串排序 458 5.1.3 高位优先的字符串排序 461 5.1.4 三向字符串快速排序 467 5.1.5 字符串排序
算法
的选择 470 5.2 单词查找
树
474 5.2.1 单词查找
树
475 5.2.2 单词查找
树
的性质 483 5.2.3 三向单词查找
树
485 5.2.4 三向单词查找
树
的性质 487 5.2.5 应该使用字符串符号表的哪种实现 489 5.3 子字符串查找 493 5.3.1 历史简介 493 5.3.2 暴力子字符串査找
算法
494 5.3.3 Knuth-Morris-Pratt子字符串查找
算法
496 5.3.4 Boyer-Moore字符串查找
算法
502 5.3.5 Rabin-Karp指纹字符串查找
算法
505 5.3.6 总结 509 5.4 正则表达式 514 5.4.1 使用正则表达式描述模式 514 5.4.2 缩略写法 516 5.4.3 正则表达式的实际应用 517 5.4.4 非确定有限状态自动机 518 5.4.5 模拟NFA的运行 520 5.4.6 构造与正则表达式对应的NFA 522 5.5 数据压缩 529 5.5.1 游戏规则 529 5.5.2 读写二进制数据 530 5.5.3 局限 533 5.5.4 热身运动:基因组 534 5.5.5 游程编码 537 5.5.6 霍夫曼压缩 540 第6章背景 558 索引 611
《
算法
》中文版,Robert Sedgewick,塞奇威克
编辑推荐 Sedgewick之巨著,与高德纳TAOCP一脉相承 几十年多次修订,经久不衰的畅销书 涵盖所有程序员必须掌握的50种
算法
内容简介 《
算法
(第4版)》全面讲述
算法
和数据结构的必备知识,具有以下几大特色。 1、
算法
领域的经典参考书:Sedgewick畅销著作的*版,反映了经过几十年演化而成的
算法
核心知识体系 2、内容全面:全面论述排序、搜索、图处理和字符串处理的
算法
和数据结构,涵盖每位程序员应知应会的50种
算法
3、全新修订的代码:全新的Java实现代码,采用模块化的编程风格,所有代码均可供读者使用 4、与实际应用相结合:在重要的科学、工程和商业应用环境下探讨
算法
,给出了
算法
的实际代码,而非同类著作常用的伪代码 5、富于智力趣味性:简明扼要的内容,用丰富的视觉元素展示的示例,精心设计的代码,详尽的历史和科学背景知识,各种难度的练习,这一切都将使读者手不释卷 6、科学的方法:用合适的数学模型精确地讨论
算法
性能,这些模型是在真实环境中得到验证的 7、与网络相结合:配套网站algs4.cs.princeton.edu提供了本书内容的摘要及相关的代码、测试数据、编程练习、教学课件等资源 作者简介 Robert Sedgewick,斯坦福大学博士,导师为Donald E.Knuth,从1985年开始一直担任普林斯顿大学计算机科学系教授,曾任该系主任,也是AdobeSystems公司董事会成员,曾在Xerox PARC、国防分析研究所(Institute for DefenseAnalyses)和法国国家信息与自动化研究所(INRIA)从事研究工作。他的研究方向包括解析组合学、数据结构和
算法
的分析与设计、程序可视化等。 KevinWayne,康奈尔大学博士,普林斯顿大学计算机科学系高级讲师,研究方向包括
算法
的设计、分析和实现,特别是图和离散优化。 目 录 第1章 基础 1.1 基础编程模型 1.1.1 Java程序的基本结构 1.1.2 原始数据类型与表达式 1.1.3 语句 1.1.4 简便记法 1.1.5 数组 1.1.6 静态方法 1.1.7 API 1.1.8 字符串 1.1.9 输入输出 1.1.10 二分查找 1.1.11 展望 1.2 数据抽象 1.2.1 使用抽象数据类型 1.2.2 抽象数据类型举例 1.2.3 抽象数据类型的实现 1.2.4 更多抽象数据类型的实现 1.2.5 数据类型的设计 1.3 背包、队列和栈 1.3.1 API 1.3.2 集合类数据类型的实现 1.3.3 链表 1.3.4 综述 1.4
算法
分析 1.4.1 科学方法 1.4.2 观察 1.4.3 数学模型 1.4.4 增长数量级的分类 1.4.5 设计更快的
算法
1.4.6 倍率实验 1.4.7 注意事项 1.4.8 处理对于输入的依赖 1.4.9 内存 1.4.10 展望 1.5 案例研究:union-find
算法
1.5.1 动态连通性 1.5.2 实现 1.5.3 展望 第2章 排序 2.1 初级排序
算法
2.1.1 游戏规则 2.1.2 选择排序 2.1.3 插入排序 2.1.4 排序
算法
的可视化 2.1.5 比较两种排序
算法
2.1.6 希尔排序 2.2 归并排序 2.2.1 原地归并的抽象方法 2.2.2 自顶向下的归并排序 2.2.3 自底向上的归并排序 2.2.4 排序
算法
的复杂度 2.3 快速排序 2.3.1 基本
算法
2.3.2 性能特点 2.3.3
算法
改进 2.4 优先队列 2.4.1 API 2.4.2 初级实现 2.4.3 堆的定义 2.4.4 堆的
算法
2.4.5 堆排序 2.5 应用 2.5.1 将各种数据排序 2.5.2 我应该使用哪种排序
算法
2.5.3 问题的归约 2.5.4 排序应用一览 第3章 查找 3.1 符号表 3.1.1 API 3.1.2 有序符号表 3.1.3 用例举例 3.1.4 无序链表中的顺序查找 3.1.5 有序数组中的二分查找 3.1.6 对二分查找的分析 3.1.7 预览 3.2 二叉查找
树
3.2.1 基本实现 3.2.2 分析 3.2.3 有序性相关的方法与删除操作 3.3 平衡查找
树
3.3.1 2-3查找
树
3.3.2 红黑二叉查找
树
3.3.3 实现 3.3.4 删除操作 3.3.5 红黑
树
的性质 3.4 散列表 3.4.1 散列函数 3.4.2 基于拉链法的散列表 3.4.3 基于线性探测法的散列表 3.4.4 调整数组大小 3.4.5 内存使用 3.5 应用 3.5.1 我应该使用符号表的哪种实现 3.5.2 集合的API 3.5.3 字典类用例 3.5.4 索引类用例 3.5.5 稀疏向量 第4章 图 4.1 无向图 4.1.1 术语表 4.1.2 表示无向图的数据类型 4.1.3 深度优先搜索 4.1.4 寻找路径 4.1.5 广度优先搜索 4.1.6 连通分量 4.1.7 符号图 4.1.8 总结 4.2 有向图 4.2.1 术语 4.2.2 有向图的数据类型 4.2.3 有向图中的可达性 4.2.4 环和有向无环图 4.2.5 有向图中的强连通性 4.2.6 总结 4.3 最小
生成
树
4.3.1 原理 4.3.2 加权无向图的数据类型 4.3.3 最小
生成
树
的API和测试用例 4.3.4
Prim
算法
4.3.5
Prim
算法
的即时实现 4.3.6
Kruskal
算法
4.3.7 展望 4.4 最短路径 4.4.1 最短路径的性质 4.4.2 加权有向图的数据结构 4.4.3 最短路径
算法
的理论基础 4.4.4 Dijkstra
算法
4.4.5 无环加权有向图中的最短路径
算法
4.4.6 一般加权有向图中的最短路径问题 4.4.7 展望 第5章 字符串 5.1 字符串排序 5.1.1 键索引计数法 5.1.2 低位优先的字符串排序 5.1.3 高位优先的字符串排序 5.1.4 三向字符串快速排序 5.1.5 字符串排序
算法
的选择 5.2 单词查找
树
5.2.1 单词查找
树
5.2.2 单词查找
树
的性质 5.2.3 三向单词查找
树
5.2.4 三向单词查找
树
的性质 5.2.5 应该使用字符串符号表的哪种实现 5.3 子字符串查找 5.3.1 历史简介 5.3.2 暴力子字符串查找
算法
5.3.3 Knuth-Morris-Pratt子字符串查找
算法
5.3.4 Boyer-Moore字符串查找
算法
5.3.5 Rabin-Karp指纹字符串查找
算法
5.3.6 总结 5.4 正则表达式 5.4.1 使用正则表达式描述模式 5.4.2 缩略写法 5.4.3 正则表达式的实际应用 5.4.4 非确定有限状态自动机 5.4.5 模拟NFA的运行 5.4.6 构造与正则表达式对应的 5.5 数据压缩 5.5.1 游戏规则 5.5.2 读写二进制数据 5.5.3 局限 5.5.4 热身运动:基因组 5.5.5 游程编码 5.5.6 霍夫曼压缩 第6章 背景 索引
算法
与数据结构课程设计
设计一个基于DOS菜单的应用程序。要利用多级菜单实现各种功能。内容如下: 无向图的基本操作及应用: 创建无向图的邻接矩阵(5.1.1); ② 创建无向图的邻接表(5.1.2); ③ 无向图的深度优先遍历(5.1.3); ④ 无向图的广度优先遍历(5.1.4)。 2. 无向网的基本操作及应用 ① 创建无向网的邻接矩阵(5.2.1); ② 创建无向网的邻接表(5.2.2); ③
Prim
求最小
生成
树
(5.2.3); ④
Kruskal
求最小
生成
树
(5.2.4)。 3. 有向图的基本操作及应用 ① 创建有向图的邻接矩阵(5.3.1); ② 创建有向图的邻接表(5.3.2); ③ 拓扑排序(5.3.3)。 4. 有向网的基本操作及应用 ① 创建有向网的邻接矩阵(5.4.1); ② 创建有向网的邻接表(5.4.2); 关键路径(5.4.3); 单源最短路径(5.4.4); ⑤ 每对顶点之间的最短路径(5.4.5)。
算法
导论(part1)
一、本书的内容 目前,市面上有关计算机
算法
的书很多,有些叙述严谨但不全面,另外一些则是容量很大但不够严谨。本书将叙述的严谨性以及内容的深度和广度有机地结合了起来。第1版推出后,即在世界范围内受到了广泛的欢迎,被各高等院校用作多种课程的教材和业界的标准参考资料。它深入浅出地介绍了大量的
算法
及相关的数据结构,以及用于解决一些复杂计算问题的高级策略(如动态规划、贪心
算法
、平摊分析等),重点在于
算法
的分析和设计。对于每一个专题,作者都试图提供目前最新的研究成果及样例解答,并通过清晰的图示来说明
算法
的执行过程。. 本书是原书的第2版,在第1版的基础之上增加了一些新的内容,涉及
算法
的作用、概率分析和随机化
算法
、线性规划,以及对第1版中详尽的、几乎涉及到每一小节的修订。这些修订看似细微,实际上非常重要。书中引入了“循环不变式”,并贯穿始终地用来证明
算法
的正确性。在不改动数学和分析重点的前提下,作者将第1版中的许多数学基础知识从第一部分移到了附录中。 二、本书的特点 本书在进行
算法
分析的过程中,保持了很好的数学严谨性。书中的分析和设计可以被具有各种水平的读者所理解。相对来说,每一章都可以作为一个相对独立的单元来教授或学习。书中的
算法
以英语加伪代码的形式给出,只要有一点程序设计经验的人都能读懂,并可以用任何计算机语言(如C/C++和Java等)方便地实现。在书中,作者将
算法
的讨论集中在一些比较现代的例子上,它们来自分子生物学(如人类基因项目)、商业和工程等领域。每一小节通常以对相关历史素材的讨论结束,讨论了在每一
算法
领域的原创研究。 本书的特点可以概括为以下几个方面: 1.概念清晰,广度、深度兼顾。 本书收集了现代计算机常用的数据结构和
算法
,并作了系统而深入的介绍。对涉及的概念和背景知识都作了清晰的阐述,有关的定理给出了完整的证明。 2.“五个一”的描述方法。 本书以相当的深度介绍了许多常用的数据结构和有效的
算法
。编写上采用了“五个一”,即一章介绍一个
算法
、一种设计技术、一个应用领域和一个相关话题。.. 3.图文并茂,可读性强。 书中的
算法
均以通俗易懂的语言进行说明,并采用了大量插图来说明
算法
是如何工作的,易于理解。 4.
算法
的“伪代码”形式简明实用。 书中的
算法
均以非常简明的“伪代码”形式来设计,可以很容易地把它转化为计算机程序,直接应用。 注重
算法
设计的效率,对所有的
算法
进行了仔细、精确的运行时间分析,有利于进一步改进
算法
。 三、本书的用法 本书对内容进行了精心的设计和安排,尽可能考虑到所有水平的读者。即使是初学计算机
算法
的人,也可以在本书中找到所需的材料。 每一章都是独立的,读者只需将注意力集中到最感兴趣的章节阅读。 1.适合作为教材或教学参考书。 本书兼顾通用性与系统性,覆盖了许多方面的内容。本书不但阐述通俗、严谨,而且提供了大量练习和思考题。针对每一节的内容,都给出了数量和难度不等的练习题。练习题用于考察对基本内容的掌握程度,思考题有一定的难度,需进行精心的研究,有时还通过思考题介绍一些新的知识。 前言回到顶部↑本书提供了对当代计算机
算法
研究的一个全面、综合性的介绍。书中给出了多个
算法
,并对它们进行了较为深入的分析,使得这些
算法
的设计和分析易于被各个层次的读者所理解。力求在不牺牲分析的深度和数学严密性的前提下,给出深入浅出的说明。. 书中每一章都给出了一个
算法
、一种
算法
设计技术、一个应用领域或一个相关的主题。
算法
是用英语和一种“伪代码”来描述的,任何有一点程序设计经验的人都能看得懂。书中给出了230多幅图,说明各个
算法
的工作过程。我们强调将
算法
的效率作为一种设计标准,对书中的所有
算法
,都给出了关于其运行时间的详细分析。 本书主要供本科生和研究生的
算法
或数据结构课程使用。因为书中讨论了
算法
设计中的工程问题及其数学性质,因此,本书也可以供专业技术人员自学之用。 本书是第2版。在这个版本里,我们对全书进行了更新。所做的改动从新增了若干章,到个别语句的改写。 致使用本书的教师 本书的设计目标是全面、适用于多种用途。它可用于若干课程,从本科生的数据结构课程到研究生的
算法
课程。由于书中给出的内容比较多,只讲一学期一般讲不完,因此,教师们应该将本书看成是一种“缓存区”或“瑞典式自助餐”,从中挑选出能最好地支持自己希望教授的课程的内容。 教师们会发现,要围绕自己所需的各个章节来组织课程是比较容易的。书中的各章都是相对独立的,因此,你不必担心意想不到的或不必要的各章之间的依赖关系。每一章都是以节为单位,内容由易到难。如果将本书用于本科生的课程,可以选用每一章的前面几节内容;在研究生课程中,则可以完整地讲授每一章。 全书包含920多个练习题和140多个思考题。每一节结束时给出练习题,每一章结束时给出一些
CSPrimer的课程社区_NO_1
1
社区成员
229
社区内容
发帖
与我相关
我的任务
CSPrimer的课程社区_NO_1
计算机科学基础系列课程:csprimer.net
复制链接
扫一扫
分享
社区描述
计算机科学基础系列课程:csprimer.net
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章