标题：计算机算法：设计与分析导论
基本信息
出版社: 高等教育出版社; (影印版) (2001年1月1日)
外文书名: Computer Algorithms
丛书名: 国外优秀信息科学与技术系列教学用书
平装: 688页
正文语种: 英语
开本: 16
ISBN: 7040100487
条形码: 9787040100488
商品尺寸: 23.2 x 18.6 x 2.8 cm
商品重量: 939 g
ASIN: B001175IWG
内容简介
本书的主要内容包括三部分，一是介绍了如何用算法解决在计算机应用中经常出现的现实问题，二是介绍了计算复杂性的基本原理与技术，最后讲解了NP-完备性问题及并行算法。本书强调算法设计技术，对每一个问题，首先讨论多个解决方法，然后设计、分析、修改或放弃某一算法，通过不断的深入研究，直到最后得到满意的结果。因此本书作者希望读者阅读此书，逐步培养形成一种新的分析问题的思维方式。 
本书在第二版的基础上，增加了三章新内容以及许多新的主题，同时对原有章节也做了重新调整。本版次还新增了100多道习题和Java实例，书中的所有程序均以Java伪码形式给出。 
内容：1. 算法分析原理 2. 数据抽象与基本数据结构 3. 递归与归纳 4. 分类 5. 选择 6. 动态集合与查找 7. 图与图的遍历 8. 图的优化问题与贪心算法 9. 传递闭包 10. 动态编程 11. 字符串匹配 12. 多项式与矩阵 13. NP-完备性问题 14. 并行算法 附录 Java实例与技术作者简介：
Sara Baase is professor of computer Science at San Diego University and has been teaching CS for 25years.Dr.Baase is a three-time recipient of the San State University Alumni Association's Outsatanding Faculty Award,adn she has written a number of textbooks in the areas of algorithms,assembly language,and social and ethical issues relate to computing.She earned her doctorate at the University of California,Berkeley.
Allen Van Celder is professor of computer Science at the University of California at Santa Cruz,where he has been teaching CS for 12 years.He received his PhComputer Science at Stanford University and is a past recipient of the Presidential Young Investigator Award.
目录
Preface 
1 Analyzing Algorithms and Problems: Principles and Examples 
1.1 Introduction 
1.2 Java as an Algorithm Language 
1.3 Mathematical Background 
1.4 Analyzing Algorithms and Problems 
1.5 Classifying Functions by Their Asymptotic Growth Rates 
1.6 Searching an Ordered Array 
Exercises 
Notes and References 
2 Data Abstraction and Basic Data Structures 
2.1 Introduction 
2.2 ADT Specification and Design Techniques 
2.3 Elementary ADTs--Lists and Trees 
2.4 Stacks and Queues
2.5 ADTs for Dynamic Sets 
Exercises 
Notes and References 
3 Recursion and induction 
3.1 introduction 
3.2 Recursive Procedures 
3.3 What is a Proof? 
3.4 Induction Proofs 
3.5 Proving Correctness of Procedures 
3.6 Recurrence Equations 
3.7 Recursion Trees 
Exercises
Notes and References
4 Sorting 
4.1 Introduction 
4.2 Insertion Sort 
4.3 Divide and Conquer 
4.4 Quicksort 
4.5 Merging Sorted Sequences 
4.6 Mergesort 
4.7 Lower Bounds for Sorting by Comparison of Keys 
4.8 Heapsort 
4.9 Comparison of Four Sorting Algorithms 
4.10 Shellsort 
4.11 Radix Sorting 
Exercises 
Programs 
Notes and References 
5 Selection and Adversary Arguments 
5.1 Introduction 
5.2 Finding max and min 
5.3 Finding the Second-Largest Key 
5.4 The Selection Problem 
5.5 A Lower Bound for Findingthe Median 
5.6 Designing Against an Adversary 
Exercises 
Notes and References 
6 Dynamic Sets and Searching 
6.1 Introduction 
6.2 Array Doubling 
6.3 Amortized Time Analysis 
6.4 Red-Black Trees 
6.5 Hashing 
6.6 Dynamic Equivalence Relations and Union-Find Programs 
6.7 Priority Queues with a Decrease Key Operation 
Exercises 
Programs 
Notes and References 
7 Graphs and Graph Traversals 
8 Graph Optimization Problems and Greedy Algorithms 
9 Transitive Closure, All-Pairs Shortest Paths 
10 Dynamic Programming 
11 String Matching 
12 Polynomials and Matrices 
13 NP-Complete Problems 
14 Parallel Algorithms 
A Java Examples and Techniques 
Bibliography
Index