阿苏外耶所著的《算法设计技巧与分析(英文版)》涵盖了绝大多数算法设计中的一般技术,在表达每一种技术时,阐述它的应用背景,注意用与其他技术相比较的方法来说明它的特征,并提供大量相应实际问题的例子。本书同时也强调了对每一种算法的详细的复杂性分析。本书的组织方式简明扼要,而且包含一般算法书籍中较少涉及的概率算法和近似算法。概率算法和近似算法是近20年来算法研究迅猛发展的领域,本书给予了足够的重视,这也是本书的特色之一。本书的另一特色是以算法的设计技术为纲,讲述一个又一个的算法技术,然后分析其算法复杂性。
阿苏外耶所著的《算法设计技巧与分析(英文版)》是国际著名算法专家李德财教授主编的系列丛书Lecture Notes Series On Computing中的一本。本书涵盖了绝大多数算法设计中的一般技术,在表达每一种技术时,阐述它的应用背景,注意用与其他技术相比较的方法说明它的特征,并提供大量相应实际问题的例子。全书分七部分共19章,从算法设计与算法分析的基本概念和方法人手,先后介绍了递归、分治、动态规划、贪心算法、图的遍历等技术,对NP完全问题进行了基本但清楚的讨论,对概率算法、近似算法和计算几何这些近年来发展迅猛的领域也用一定的篇幅讲述了基本内容。书中每章后都附有大量的练习题,有利于读者对书中内容的理解和应用。
《算法设计技巧与分析(英文版)》结构简明、内容丰富,可作为计算机相关专业本科生和研究生算法课程的双语教材与参考书,尤其适合作为数据结构和离散数学课程之后的算法课程的教材。同时也可作为从事算法研究的一本很好的入门书。
PART 1 Basic Concepts and Introduction to Algorithms
Chapter 1 Basic Concepts in Algorithmic Analysis
1.1 Introduction
1.2 Historical Background
1.3 Binary Search
1.3.1 Analysis of the binary search algorithm
1.4 Merging Two Sorted Lists
1.5 Selection Sort
1.6 Insertion Sort
1.7 BottomJ.Jp Merge Sorting
1.7.1 Analysis of bottom-up merge sorting
1.8 Time Complexity
1.8.1 Order of growth
1.8.2 The O-notation
1.8.3 The Ω-notation
1.8.4 The Θ-notation
1.8.5 Examples
1.8.6 Complexity classes and the e notation
1.9 Space Complexity
1.10 optimal Algorithms
1.11 How to Estimate the Running Time of an Algorithm
1.11.1 Counting the number of iterations
1.11.2 Counting the frequency of basic operations
1.11.3 Using recurrence relations
1.12 Worst case and average case analysis
1.12.1 Worst case analysis
1.12.2 Average case analysis
1.13 Amortized Analysis
1.14 Input Size and Problem Instance
1.15 Exercises
1.16 Bibliographic Notes
Chapter 2 Mathematical Preliminaries
Chapter 3 Data Structures
Chapter 4 Heaps and the Disjoint Sets Data Structures
PART 2 Techniques Based on Recursion
Chapter 5 Induction
Chapter 6 Divide and Conquer
Chapter 7 Dynamic Programming
PART 3 First-Cut Techniques
Chapter 8 The Greedy Approach
Chapter 9 Graph Traversal
PART 4 Complexity of Problems
Chapter 10 NP-complete Problems
Chapter 11 Introduction to Computational Complexity
Chapter 12 Lower Bounds
PART 5 Coping with Hardness
Chapter 13 Backtracking
Chapter 14 Randomized Algorithms
Chapter 15 Approximation Algorithms
PART 6 Iterative Improvement for Domain-Specific Problems
Chapter 16 Network Flow
Chapter 17 Matching
PART 7 Techniques in Computational Geometry
Chapter 18 Geometric Sweeping
Chapter 19 Voronoi Diagrams
Bibliography
Index