算法设计与分析基础 : 第3版

算法设计与分析基础 : 第3版

(美) 莱维丁 (Levitin,A.) , 著

出版社:清华大学出版社

年代:2013

定价:79.0

书籍简介:

本书采用算法的经典模式,首先说明什么是算法,然后经过思维训练和实践,解决如何分析与设计算法,有利于培养和提升学生的思维能力和创新能力。本书跳出传统教材的框架,用一种新颖的方式来呈现主题,既照顾本科学生课堂教学的需求,也兼顾他们课后拓展学习以进一步探索算法奥秘的愿望。大量的流行谜题和游戏,非常有利于提升学生的学习兴趣。

作者介绍:

Anany Levitin博士,美国维拉诺瓦大学教授,毕业于莫斯科国立大学并获得数学硕士学位。他拥有耶路撒冷希伯来大学数学博士学位和美国肯塔基大学计算机科学硕士学位。他的著作《算法设计与分析基础》已经被翻译为中文、俄文、希腊文和韩文,并被全球数百所高校广泛用作教材。目前,Levitin博士在美国维拉诺瓦大学讲授“算法设计与分析”课程。他的另一本著作《算法谜题》已经于2011年秋出版。   Anany Levitin,美籍犹太人,维拉诺瓦大学(Villanova)计算机科学系教授。他的论文“算法设计技术新途径:弥补传统分类法的缺憾”(A New Road Mpa of Algorithm Design Techniques: Picking Up Where the Traditional Classfication Leaves Off)深受业内好评,并享有广泛的声誉。他提出的这种新分类方法涵盖众多经典算法,开创了传统分类无法以一致方式介绍这些算法的先河。作为通用的问题解决工具,算法设计技术的应用很广,尤其适用于解决“狼,羊,白菜”问题和旅行商问题之类的流行谜题。   因为他对算法教育所做出的杰出贡献,Levitin教授曾多次受邀在SIGCSE(Computer Science Education,计算机教育) 全球大会上发表演讲,此大会每三年才举行一次。   Anany Levitin教授目前的研究课题为“Do We Teach the Right Algorithm Design Techniques ?”

书籍目录:

New to the Third Edition xvii

Preface xix

1Introduction

1.1 What Is an Algorithm?

Exercises 1.1

1.2 Fundamentals of Algorithmic Problem Solving

Understanding the Problem

Ascertaining the Capabilities of the Computational Device

Choosing between Exact and Approximate Problem Solving

Algorithm Design Techniques

Designing an Algorithm and Data Structures

Methods of Specifying an Algorithm

Proving an Algorithm's Correctness

Analyzing an Algorithm

Coding an Algorithm

Exercises 1.2

1.3 Important Problem Types

Sorting

Searching

String Processing

Graph Problems

Combinatorial Problems

Geometric Problems

Numerical Problems

Exercises 1.3

1.4 Fundamental Data Structures

Linear Data Structures

Graphs

Trees

Sets and Dictionaries

Exerises 1.4

Summary

2 Fundamentals of the Analysis of Algorithm Efficiency

2.1 The Analysis Framework

Measuring an Input's Size

Units for Measuring Running Time

Orders of Growth

Worst-Case, Best-Case, and Average-Case Efficiencies

Recapitulation of the Analysis Framework

Exercises 2.1

2.2 Asymptotic Notations and Basic Efficiency Classes

Informal Introduction

O-notation

-notation

-notation

Useful Property Involving the Asymptotic Notations

Using Limits for Comparing Orders of Growth

Basic Efficiency Classes

Exercises 2.2

2.3 Mathematical Analysis of Nonrecursive Algorithms

Exercises 2.3

2.4 Mathematical Analysis of Recursive Algorithms

Exercises 2.4

2.5 Example: Computing the nth Fibonacci Number

Exercises 2.5

2.6 Empirical Analysis of Algorithms

Exercises 2.6

2.7 Algorithm Visualization

Summary

3 Brute Force and Exhaustive Search

3.1 Selection Sort and Bubble Sort

Selection Sort

Bubble Sort

Exercises 3.1

3.2 Sequential Search and Brute-Force String Matching

Sequential Search

Brute-Force String Matching

Exercises 3.2

3.3 Closest-Pair and Convex-Hull Problems by Brute Force

Closest-Pair Problem

Convex-Hull Problem

Exercises 3.3

3.4 Exhaustive Search

Traveling Salesman Problem

Knapsack Problem

Assignment Problem

Exercises 3.4

3.5 Depth-First Search and Breadth-First Search

Depth-First Search

Breadth-First Search

Exercises 3.5

Summary

4 Decrease-and-Conquer

4.1 Insertion Sort

Exercises 4.1

4.2 Topological Sorting

Exercises 4.2

4.3 Algorithms for Generating Combinatorial Objects

Generating Permutations

Generating Subsets

Exercises 4.3

4.4 Decrease-by-a-Constant-Factor Algorithms

Binary Search

Fake-Coin Problem

Russian Peasant Multiplication

Josephus Problem

Exercises 4.4

4.5 Variable-Size-Decrease Algorithms

Computing a Median and the Selection Problem

Interpolation Search

Searching and Insertion in a Binary Search Tree

The Game of Nim

Exercises 4.5

Summary

5 Divide-and-Conquer

5.1 Mergesort

Exercises 5.1

5.2 Quicksort

Exercises 5.2

5.3 Binary Tree Traversals and Related Properties

Exercises 5.3

5.4 Multiplication of Large Integers and

Strassen's Matrix Multiplication

Multiplication of Large Integers

Strassen's Matrix Multiplication

Exercises 5.4

5.5 The Closest-Pair and Convex-Hull Problems

by Divide-and-Conquer

The Closest-Pair Problem

Convex-Hull Problem

Exercises 5.5

Summary

6 Transform-and-Conquer

6.1 Presorting

Exercises 6.1

6.2 Gaussian Elimination

LU Decomposition

Computing a Matrix Inverse

Computing a Determinant

Exercises 6.2

6.3 Balanced Search Trees

AVL Trees

2-3 Trees

Exercises 6.3

6.4 Heaps and Heapsort

Notion of the Heap

Heapsort

Exercises 6.4

6.5 Horner's Rule and Binary Exponentiation

Horner's Rule

Binary Exponentiation

Exercises 6.5

6.6 Problem Reduction

Computing the Least Common Multiple

Counting Paths in a Graph

Reduction of Optimization Problems

Linear Programming

Reduction to Graph Problems

Exercises 6.6

Summary

7 Space and Time Trade-Offs

7.1 Sorting by Counting

Exercises 7.1

7.2 Input Enhancement in String Matching

Horspool's Algorithm

Boyer-Moore Algorithm

Exercises 7.2

7.3 Hashing

Open Hashing (Separate Chaining)

Closed Hashing (Open Addressing)

Exercises 7.3

7.4 B-Trees

Exercises 7.4

Summary

8 Dynamic Programming

8.1 Three Basic Examples

Exercises 8.1

8.2 The Knapsack Problem and Memory Functions

Memory Functions

Exercises 8.2

8.3 Optimal Binary Search Trees

Exercises 8.3

8.4 Warshall's and Floyd's Algorithms

Warshall's Algorithm

Floyd's Algorithm for the All-Pairs Shortest-Paths Problem

Exercises 8.4

Summary

9 Greedy Technique

9.1 Prim's Algorithm

Exercises 9.1

9.2 Kruskal's Algorithm

Disjoint Subsets and Union-Find Algorithms

Exercises 9.2

9.3 Dijkstra's Algorithm

Exercises 9.3

9.4 Huffman Trees and Codes

Exercises 9.4

Summary

10 Iterative Improvement

10.1 The Simplex Method

Geometric Interpretation of Linear Programming

An Outline of the Simplex Method

Further Notes on the Simplex Method

Exercises 10.1

10.2 The Maximum-Flow Problem

Exercises 10.2

10.3 Maximum Matching in Bipartite Graphs

Exercises 10.3

10.4 The Stable Marriage Problem

Exercises 10.4

Summary

11 Limitations of Algorithm Power

11.1 Lower-Bound Arguments

Trivial Lower Bounds

Information-Theoretic Arguments

Adversary Arguments

Problem Reduction

Exercises 11.1

11.2 Decision Trees

Decision Trees for Sorting

Decision Trees for Searching a Sorted Array

Exercises 11.2

11.3 P, NP, and NP-Complete Problems

P and NP Problems

NP-Complete Problems

Exercises 11.3

11.4 Challenges of Numerical Algorithms

Exercises 11.4

Summary

12 Coping with the Limitations of Algorithm Power

12.1 Backtracking

n-Queens Problem

Hamiltonian Circuit Problem

Subset-Sum Problem

General Remarks

Exercises 12.1

12.2 Branch-and-Bound

Assignment Problem

Knapsack Problem

Traveling Salesman Problem

Exercises 12.2

12.3 Approximation Algorithms for NP-Hard Problems

Approximation Algorithms for the Traveling Salesman Problem

Approximation Algorithms for the Knapsack Problem

Exercises 12.3

12.4 Algorithms for Solving Nonlinear Equations

Bisection Method

Method of False Position

Newton's Method

Exercises 12.4

Summary

Epilogue

APPENDIX A

Useful Formulas for the Analysis of Algorithms

Properties of Logarithms

Combinatorics

Important Summation Formulas

Sum Manipulation Rules

Approximation of a Sum by a Definite Integral

Floor and Ceiling Formulas

Miscellaneous

APPENDIX B

Short Tutorial on Recurrence Relations

Sequences and Recurrence Relations

Methods for Solving Recurrence Relations

Common Recurrence Types in Algorithm Analysis

References

Hints to Exercises

Index

内容摘要:

《算法设计与分析基础 (第3版)(影印版)》在讲述算法设计技术时采用了新的分类方法,在讨论分析方法时条分缕析,形成了连贯有序、耳目一新的风格。为便于学生掌握,本书涵盖算法入门课程的全部内容,更注重对概念(而非形式)的理解。书中通过一些流行的谜题来激发学生的兴趣,帮助他们加强和提高解决算法问题的能力。每章小结、习题提示和详细解答,形成了非常鲜明的教学特色。

编辑推荐:

历经十年数百所高校教学实践的算法入门经典。算法是思维的艺术,是数学之美的完美体现,是计算机和信息科学的灵魂,更是优秀程序员的安身立命之本。《算法设计与分析基础 (第3版)(影印版)》将算法视为解决问题的工具,通过作者独创的、具有里程碑意义的新型分类法弥补了传统算法设计技术分类法的缺陷,用深入浅出的语言和新颖的实例与谜题,诠释了何为算法、算法的分类、算法幕后的思想、算法的效率,抽丝剥茧、条分缕析地探索了算法设计与分析过程。

书籍规格:

书籍详细信息
书名算法设计与分析基础 : 第3版站内查询相似图书
9787302311850
如需购买下载《算法设计与分析基础 : 第3版》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位清华大学出版社
版次影印本印次1
定价(元)79.0语种英文
尺寸23 × 19装帧平装
页数印数 4000

书籍信息归属:

算法设计与分析基础 : 第3版是清华大学出版社于2013.出版的中图分类号为 TP301.6 的主题关于 电子计算机-算法设计-英文 ,电子计算机-算法分析-英文 的书籍。