算法Ⅰ-Ⅳ/国外优秀信息科学与技术系列教学用

算法Ⅰ-Ⅳ/国外优秀信息科学与技术系列教学用
作 者: 塞奇威克
出版社: 高等教育出版社
丛编项: 基础、数据结构、排序和搜索
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 计算机科学理论 计算机与互联网 综合 教材教辅与参考书
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  作者RobertSedgewick是美国普林斯顿大学计算机科学系教授,也是Adobe系统领导者之一,曾任XeroxPARC公司、国防分析学院、INRIA公司研究组成员。

内容简介

本书通过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++经典算法和新算法融入程序设计的参考手册,你都会发现本书提供了丰富的有用信息。

图书目录

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