出版时间:2012-3 出版社:人民邮电出版社 作者:Robert Sedgewick,Kevin Wayne 页数:955
Tag标签:无
内容概要
本书全面讲述算法和数据结构的必备知识,具有以下几大特色。
算法领域的经典参考书
Sedgewick畅销著作的最新版,反映了经过几十年演化而成的算法核心知识体系
内容全面
全面论述排序、搜索、图处理和字符串处理的算法和数据结构,涵盖每位程序员应知应会的50种算法
全新修订的代码
全新的Java实现代码,采用模块化的编程风格,所有代码均可供读者使用
与实际应用相结合
在重要的科学、工程和商业应用环境下探讨算法,给出了算法的实际代码,而非同类著作常用的伪代码
富于智力趣味性
简明扼要的内容,用丰富的视觉元素展示的示例,精心设计的代码,详尽的历史和科学背景知识,各种难度的练习,这一切都将使读者手不释卷
科学的方法
用合适的数学模型精确地讨论算法性能,这些模型是在真实环境中得到验证的
与网络相结合
配套网站algs4.cs.princeton.edu提供了本书内容的摘要及相关的代码、测试数据、编程练习、教学课件等资源
作者简介
Robert
Sedgewick 斯坦福大学博士,导师为Donald E.
Knuth,从1985年开始一直担任普林斯顿大学计算机科学系教授,曾任该系主任,也是Adobe
Systems公司董事会成员,曾在Xerox
PARC、国防分析研究所(institute for
Defense Analyses)和法国国家信息与自动化研究所(INRIA)从事研究工作。他的研究方向包括解析组合学、数据结构和算法的分析与设计、程序可视化等。
Kevin Wayne 康奈尔大学博士,普林斯顿大学计算机科学系高级讲师,研究方向包括算法的设计、分析和实现,特别是图和离散优化
书籍目录
1 Fundamentals
1.1 Basic Programming Model
1.2 Data Abstraction
1.3 Bags, Queues, and Stacks
1.4 Analysis of Algorithms
1.5 Case Study: Union-Find
2 Sorting
2.1 Elementary Sorts
2.2 Mergesort
2.3 Quicksort
2.4 Priority Queues
2.5 Applications
3 Searching
3.1 Symbol Tables
3.2 Binary Search Trees
3.3 Balanced Search Trees
3.4 Hash Tables
3.5 Applications
4 Graphs
4.1 Undirected Graphs
4.2 Directed Graphs
4.3 Minimum Spanning Trees
4.4 Shortest Paths
5 Strings
5.1 String Sorts
5.2 Tries
5.3 Substring Search
5.4 Regular Expressions
5.5 Data Compression
6 Context
Index
Algorithms
Clients
章节摘录
版权页:插图:A potential downside to this approach is that we have to work with a specnc programming language, possibly making it difficult to separate the idea of the algorithmfrom the details of its implementation. Our implementations are designed to mitigatethis difficulty, by using programming constructs that are both found in many modernlanguages and needed to adequately describe the algorithms. We use only a small subset of Java. While we stop short of formally defining thesubset that we use, you will see that we make use of relatively few Java constructs, andthat we emphasize those that are found in many modern programming languages. Thecode that we present is complete, and our expectation is that you will download it andexecute it, on our test data or test data of your own choosing. We refer to the programming constructs, software libraries, and operating systemfeatures that we use to implement and describe algorithms as our programming model.In this section and SECTION 1.2, we fully describe this programming model. The treatment is self-contained and primarily intended for documentation and for your reference in understanding any code in the book. The model we describe is the same modelintroduced in our book An Introduction to Programming in lava: An Interdisciplinary Approach, which provides a slower-paced introduction to the material. For reference, the figure on the facing page depicts a complete Java program thatillustrates many of the basic features of our programming model. We use this code forexamples when discussing language features, but defer considering it in detail to page 46 (it implements a classic algorithm known as binary search and tests it for an application known as whitelist filtering). We assume that you have experience programmingin some modern language, so that you are likely to recognize many of these features inthis code. Page references are included in the annotations to help you find answers toany questions that you might have. Since our code is somewhat stylized and we striveto make consistent use of various Java idioms and constructs, it is worthwhile even forexperienced Java programmers to read the information in this section.
图书封面
图书标签Tags
无
评论、评分、阅读与下载