书籍详情
算法Ⅰ-Ⅳ/国外优秀信息科学与技术系列教学用
作者:(美国)塞奇威克著
出版社:高等教育出版社
出版时间:2002-10-01
ISBN:9787040113983
定价:¥49.00
购买这本书可以去
内容简介
本书通过C++实现方案以简洁、直接的方式对书中的算法和数据结构进行表述,并向学生提供在实际应用中验证这种方法的手段。本书广泛地论述了与排序、搜索及相关应用有关的基本数据结构和算法。覆盖了数组、链表、串、树和其他基本数据结构,更多地强调抽象数据类型(ADT)、模块化程序设计、面向对象程序设计和C++类。本书包括排序、选择、优先队列ADT实现和符号表ADT(搜索)实现,配有帮助学生学习计算机算法特性的1000多种新练习、100多个图表以及大量的程序例子。RobertSedgewick完全重定了他的著作,对它进行了充分的扩展和更新,涵盖了目前重要的算法和数据结构。ChristopherVanWyk和Sedgewick开发的新实现采用的是C++语言,这种实现不仅能简洁直接地表达算法,而且给编程者提供了实践的方法,以便在真正的应用中测试这些算法。新的版本提供了很多新算法,而且对每个算法的解释也比以前的版本详细得多。新的版面设计以及详细、富有创意并且具有注释的插图,使本书的表达能力大大地提高了。第三版保留了将理论和实践成功混合在一起的特点,正是这一点,使Sedgewick的著作成为25万多名程序员无价的参考资源。本书是全卷的前半部分,涵盖了基本的数据结构、排序算法、搜索算法以及它们的相关应用。虽然本书实质上可以用于各种语言的程序设计,ChristopherVanWyk和Sedgewick的实现都采用了C++类和ADT实现的自然对应。本书的精彩内容包括:·扩展了对数组、链表、字符串树及其他基本数据结构的介绍。·比以前的版本更中着重于抽象数据类型(ADT)、模块化程序设计方法、面向对象的程序设计方法和C++类。·有关排序、选择、优先级队列ADT实现和符号表ADT(搜索)实现的算法,超过100个。·关于二项式队列、多路基数排序、随机化BST、发散树、跳跃表、多叉线索、B树、可扩充散列等,采用了新的实现。·关于算法的量化分析,是比较算法的依据。·1000多条新的练习,帮助读者学习算法。无论是你初学算法,还是想找一本将最新C++经典算法和新算法融入程序设计的参考手册,你都会发现本书提供了丰富的有用信息。
作者简介
作者RobertSedgewick是美国普林斯顿大学计算机科学系教授,也是Adobe系统领导者之一,曾任XeroxPARC公司、国防分析学院、INRIA公司研究组成员。
目录
Fundamentals
Chapter 1.Introduction
1.1 Algorithms
1.2 A Sample Problem-Connectivity
1.3 Union-Find Algorithms
1.4 Perspective
1.5 Summary of Topics
Chapter 2.Principles of Algorithm Analysis
2.1 Implementation and Empirical Analysis
2.2 Analysis of Algorithms
2.3 Growth of Functions
2.4 Big-Oh Notation
2.5 Basic Recurrences
2.6 Examples of Algorithm Analysis
2.7 Guarantees, Predictions, and Limitations
Data Structures
Chapter 3.Elementary Data Structures
3.1 Building Blocks
3.2 Arrays' S3
3.3 Linked Lists
3.4 Elementary List Processing
3.5 Memory Allocation for Lists
3.6 Strings
3.7 Compound Data Structures
Chapter 4.Abstract Data Types
4.1 Abstract Objects and Collections of Objects
4.2 Pushdown Stack ADT
4.3 Examples of Stack ADT Clients
4.4 Stack ADT Implementations
4.S Creation of a New ADT
4.6 FIFO Queues and Generalized Queues
4.7 Duplicate and Index Items
4.8 First-Class ADTs
4.9 Application-Based ADT Example
4.10 Perspective
Chapter 5.Recursion and Trees
5.1 Recursive Algorithms
5.2 Divide and Conquer
5.3 Dynamic Programming
5.4 Trees
5.5 Mathematical Properties of Trees
5.6 Tree Traversal
5.7 Recursive Binary-Tree Algorithms
5.8 Graph Traversal
5.9 Perspective
Sorting
Chapter 6.Elementary Sorting Methods
6.1 Rules of the Game
6.2 Selection Sort
6.3 Insertion Sort
6.4 Bubble Sort
6.5 Performance Characteristics of Elementary Sorts
6.6 Shellsort
6.7 Sorting Other Types of Data
6.8 Index and Pointer Sorting
6.9 Sorting Linked Lists
6.10 Key-Indexed Counting
Chapter 7.Quicksort
7.1 The Basic Algorithm
7.2 Performance Characteristics of Quicksort
7.3 Stack Size
7.4 Small Subfiles
7.5 Median-of-Three Partitioning
7.6 Duplicate Keys
7.7 Strings and Vectors
7.8 Selection
Chapter 8.Merging and Mergesort
8.1 Two-Way Merging
8.2 Abstract In-Place Merge
8.3 Top-Down Mergesort
8.4 Improvements to the Basic Algorithm
8.5 Bottom-UP Mergesort
8.6 Performance Characteristics of Mergesort
8.7 Linked-List Implementations of Mergesort
8.8 Recursion Revisited
Chapter 9.Priority Queues and Heapsort
9.1 Elementary Implementations
9.2 Heap Data Structure
9.3 Algorithms on Heaps
9.4 Heapsort
9.5 Priority-Queue ADT
9.6 Priority Queues for Index Items
9.7 Binomial Queues
Chapter 10.Radix Sorting
10.1 Bits, Bytes, and Words
10.2 Binary Quicksort
10.3 MSD Radis Sort
10.4 Three-Way Radin Quicksort
10.S LSD Radis Sort
10.6 Performance Characteristics of Radix Sorts
10.7 Sublinear-Time Sorts
Chapter 11.Spedal-Purpose Sorts
11.1 Batcher's Odd-Even Mergesort
11.2 Sorting Networks
11.3 External Sorting
11.4 Sort-Merge Implementations
11.5 Parallel Sort/Merge
Searching
Chapter 12.Symbol Tables and BSTs
12.1 Symbol-Table Abstract Data Type
12.2 Key-Indexed Search
12.3 Sequential Search
12.4 Binary Search
12.5 Binary Search Trees (BSTs)
12.6 Performance Characteristics of BSTs
12.7 Index Implementations with Symbol Tables
12.8 Insertion at the Root in BSTs
12.9 BST Implementations of Other ADT Functinns
Chapter 13.Balanced Trees
13.1 Randomized BSTs
13.2 Splay BSTs
13.3 Top-Down 2-3-4 Trees
13.4 Red-Black Trees
13.5 Skip Lists
13.6 Performance Characteristics
Chapter 14.Hashing
14.1 Hash Functions
14.2 Separate Chaining
14.3 Linear Probing
14.4 Double Hashing
14.5 Dynadric Hash Tables
14.6 Perspective
Chapter 15.Radit Search
15.1 Digital Search Trees
15.2 Tries
15.3 Patricia Tries
15.4 Multiway Tries and TSTs
15.5 Text String Index Applications
Chapter 16.External Searching
16.1 Rules of the Game
16.2 Indexed Sequential Access
16.3 B Trees
16.4 Extendible Hashing
16.5 Perspective
Index
Chapter 1.Introduction
1.1 Algorithms
1.2 A Sample Problem-Connectivity
1.3 Union-Find Algorithms
1.4 Perspective
1.5 Summary of Topics
Chapter 2.Principles of Algorithm Analysis
2.1 Implementation and Empirical Analysis
2.2 Analysis of Algorithms
2.3 Growth of Functions
2.4 Big-Oh Notation
2.5 Basic Recurrences
2.6 Examples of Algorithm Analysis
2.7 Guarantees, Predictions, and Limitations
Data Structures
Chapter 3.Elementary Data Structures
3.1 Building Blocks
3.2 Arrays' S3
3.3 Linked Lists
3.4 Elementary List Processing
3.5 Memory Allocation for Lists
3.6 Strings
3.7 Compound Data Structures
Chapter 4.Abstract Data Types
4.1 Abstract Objects and Collections of Objects
4.2 Pushdown Stack ADT
4.3 Examples of Stack ADT Clients
4.4 Stack ADT Implementations
4.S Creation of a New ADT
4.6 FIFO Queues and Generalized Queues
4.7 Duplicate and Index Items
4.8 First-Class ADTs
4.9 Application-Based ADT Example
4.10 Perspective
Chapter 5.Recursion and Trees
5.1 Recursive Algorithms
5.2 Divide and Conquer
5.3 Dynamic Programming
5.4 Trees
5.5 Mathematical Properties of Trees
5.6 Tree Traversal
5.7 Recursive Binary-Tree Algorithms
5.8 Graph Traversal
5.9 Perspective
Sorting
Chapter 6.Elementary Sorting Methods
6.1 Rules of the Game
6.2 Selection Sort
6.3 Insertion Sort
6.4 Bubble Sort
6.5 Performance Characteristics of Elementary Sorts
6.6 Shellsort
6.7 Sorting Other Types of Data
6.8 Index and Pointer Sorting
6.9 Sorting Linked Lists
6.10 Key-Indexed Counting
Chapter 7.Quicksort
7.1 The Basic Algorithm
7.2 Performance Characteristics of Quicksort
7.3 Stack Size
7.4 Small Subfiles
7.5 Median-of-Three Partitioning
7.6 Duplicate Keys
7.7 Strings and Vectors
7.8 Selection
Chapter 8.Merging and Mergesort
8.1 Two-Way Merging
8.2 Abstract In-Place Merge
8.3 Top-Down Mergesort
8.4 Improvements to the Basic Algorithm
8.5 Bottom-UP Mergesort
8.6 Performance Characteristics of Mergesort
8.7 Linked-List Implementations of Mergesort
8.8 Recursion Revisited
Chapter 9.Priority Queues and Heapsort
9.1 Elementary Implementations
9.2 Heap Data Structure
9.3 Algorithms on Heaps
9.4 Heapsort
9.5 Priority-Queue ADT
9.6 Priority Queues for Index Items
9.7 Binomial Queues
Chapter 10.Radix Sorting
10.1 Bits, Bytes, and Words
10.2 Binary Quicksort
10.3 MSD Radis Sort
10.4 Three-Way Radin Quicksort
10.S LSD Radis Sort
10.6 Performance Characteristics of Radix Sorts
10.7 Sublinear-Time Sorts
Chapter 11.Spedal-Purpose Sorts
11.1 Batcher's Odd-Even Mergesort
11.2 Sorting Networks
11.3 External Sorting
11.4 Sort-Merge Implementations
11.5 Parallel Sort/Merge
Searching
Chapter 12.Symbol Tables and BSTs
12.1 Symbol-Table Abstract Data Type
12.2 Key-Indexed Search
12.3 Sequential Search
12.4 Binary Search
12.5 Binary Search Trees (BSTs)
12.6 Performance Characteristics of BSTs
12.7 Index Implementations with Symbol Tables
12.8 Insertion at the Root in BSTs
12.9 BST Implementations of Other ADT Functinns
Chapter 13.Balanced Trees
13.1 Randomized BSTs
13.2 Splay BSTs
13.3 Top-Down 2-3-4 Trees
13.4 Red-Black Trees
13.5 Skip Lists
13.6 Performance Characteristics
Chapter 14.Hashing
14.1 Hash Functions
14.2 Separate Chaining
14.3 Linear Probing
14.4 Double Hashing
14.5 Dynadric Hash Tables
14.6 Perspective
Chapter 15.Radit Search
15.1 Digital Search Trees
15.2 Tries
15.3 Patricia Tries
15.4 Multiway Tries and TSTs
15.5 Text String Index Applications
Chapter 16.External Searching
16.1 Rules of the Game
16.2 Indexed Sequential Access
16.3 B Trees
16.4 Extendible Hashing
16.5 Perspective
Index
猜您喜欢