算法设计:由Michael Goodrich和Roberto Tamassia撰写的算法算法算法设计的全面介绍,提供了有关计算机算法和数据结构的设计,实现和分析的现代视角。本教科书专为本科和初中算法课程而设计,为理论分析技术,设计模式和实验方法提供了全面的介绍。文本包括几个实施案例研究,并利用Internet应用程序来激励诸如哈希,分类和搜索之类的主题。算法设计专注于实用应用,为学生提供了算法技术的坚实基础,这是那些寻求对算法更全面介绍的人的理想资源。 本书提供了对计算机算法和数据结构的全面介绍。 主要目标是向学生介绍算法和数据结构的设计和分析。 本书涵盖了各种主题,例如算法设计模式,例如贪婪,分歧和动态编程;算法框架,包括NP完整性,近似算法和并行算法;以及列表,树和哈希表等数据结构。 组合算法,图形算法,几何算法,数值算法和Internet算法也涵盖在本书中。 他们还积极从事教育技术研究,特别着重于算法可视化系统和对远程学习的基础设施支持。算法设计专注于实用应用,为学生提供了算法技术的坚实基础,这是那些寻求对算法更全面介绍的人的理想资源。本书提供了对计算机算法和数据结构的全面介绍。主要目标是向学生介绍算法和数据结构的设计和分析。本书涵盖了各种主题,例如算法设计模式,例如贪婪,分歧和动态编程;算法框架,包括NP完整性,近似算法和并行算法;以及列表,树和哈希表等数据结构。组合算法,图形算法,几何算法,数值算法和Internet算法也涵盖在本书中。他们还积极从事教育技术研究,特别着重于算法可视化系统和对远程学习的基础设施支持。作者,古德里奇(Goodrich)和塔玛西亚(Tamassia)教授是数据结构和算法领域的知名研究人员,并发表了许多有关互联网计算,信息可视化,地理信息系统和计算机安全等主题的论文。作者拥有广泛的研究合作记录,并在国家科学基金会,陆军研究办公室和国防高级研究计划局赞助的几个联合项目中担任首席研究人员。Roberto Tamassia获得了博士学位。 1988年,伊利诺伊大学伊利诺伊大学的电气和计算机工程专业。他目前是计算机科学系教授,也是布朗大学几何计算中心主任。他是计算几何形状的编辑:理论和应用以及图形算法和应用杂志,并以前曾在计算机IEEE交易的编辑委员会任职。除了他的研究成就外,塔马西亚在教学方面还具有丰富的经验。自1987年以来,他一直在教授数据结构和算法课程,其中包括新生 - 学生级课程和高级课程,以这种能力获得了几项教学奖项。塔马西亚的教学风格涉及活泼的互动课堂会议,这些课程带来了数据结构和算法技术背后的直觉和见解。Tamas-Sia博士已将数据结构和算法教授为自1988年以来的入门新生课程。学生会发现主题有趣且与互联网应用程序相关。使他的教学风格与众不同的一件事是他有效地利用了互动超文本演讲,延续了布朗的“电子课堂”传统。他所教的课程精心设计的网页已被全球学生和专业人士用作参考材料。算法和与网络相关的主题,例如缓存路由,拍卖机制和爬行技术。我们发现,通过现实世界的应用介绍这些主题并激励学生学习算法可以提高他们的理解。本书提供了Java中的软件实施示例,面向实验分析的实现问题以及各种设计方法。讲师可以根据其喜好构建材料的灵活性,涵盖或跳过某些章节,因为他们认为合适。这本书是围绕算法课程进行的,具有传统算法介绍(CS7)课程或专门的Internet算法课程的可选选择。表0.1提供了一个示例,说明了如何将此材料用于每章,而表0.2提供了另一种选择。此外,该书还提供了一个全面的网站,其中包括大量资源,示例和实施问题与算法和与Internet相关的主题相关的问题。为了增强学习经验,我们提供了补充本书中主题的其他教育辅助工具。我们假设读者对基本数据结构(例如数组和链接列表)有基本的了解,并且熟悉C,C ++或Java(例如C,C ++或Java)等高级编程语言。对于学生,这些资源包括: *以四页格式的大多数主题的演示讲义 *一个有关选定作业的提示的数据库,由问题编号索引 *互动式的小程序,这些互动式小程序可以为本书的Java示例提供基本数据结构和算法 *源代码,而这本书中的Java示例特别有用,这对您的提示服务特别有用,这可能会对某些学生挑战一些学生。For instructors using this book, we offer a dedicated section of the website with additional teaching aids such as: * Solutions to selected exercises in this book * A database of additional exercises and their solutions * Presentations (one-per-page format) for most topics covered in this book Readers interested in implementing algorithms and data structures can download JDSL, the Data Structures Library in Java, from .算法在高级“伪代码”中描述,而特定的编程语言构造仅在可选的Java实现示例部分中使用。在数学背景方面,我们假设读者熟悉一年级数学的主题,包括指数,对数,求和,限制和基本概率。我们在第1章中回顾了大多数这些主题,包括指数,对数和总结,并在附录A中提供了其他有用的数学事实(包括基本概率)的总结。 Algorithm 373-376 8 Network Flow and Matching 381-412 8.1 Flows and Cuts 8.2 Maximum Flow 8.3 Maximum Bipartite Matching 8.4 Minimum-Cost Flow: 8.5 Java Example: Minimum-Cost Flow 398-412 8.6 Exercises **Part II: Internet Algorithmics** 9 Text Processing 417-444 9.1 Strings and Pattern Matching Algorithms 9.2 Tries 9.3 Text Compression 9.4 Text Similarity Testing 9.5 Exercises 10 Number Theory and Cryptography 451-508 10.1 Fundamental Algorithms Involving Numbers 10.2 Cryptographic Computations 10.3 Information Security Algorithms and Protocols 10.4 The Fast Fourier Transform 10.5 Java Example: FFT 500-508 10.6 Exercises **Target Audience** * Computer Programmers * Software Engineers * Scientists **Special Features** * Addresses数据结构和算法的实现 *涵盖了密码,FFT,并行算法和NP完整性
主要关键词