內容簡介
創造穩定的軟體需要有效的算法,但是程式設計者們很少能在問題出現之前就想到。《算法技術手冊(影印版)》描述了現有的可以解決多種問題的算法,並且能夠幫助你根據需求選擇並實現正確的算法——只需要一定的數學知識即可理解並分析算法執行。相對於理論來說,本書更注重實際運用,書中提供了多種程式語言中可用的有效代碼解決方案,可輕而易舉地適合一個特定的項目。有了這本書,你可以:
解決特定編碼問題或改進現有解決方案的執行;
迅速確定與需要解決的問題相關的算法,並判定為什麼這樣的算法是正確的;
探索C、C++、Java、Ruby中的算法解決方案,伴有實現訣竅;
了解一個算法預期的執行情況及最佳的執行條件;
發現不同算法中相似設計產生的衝突;
學習先進的數據結構以改進算法效率。
有了《算法技術手冊》,你可以學習如何改進算法的性能,這是軟體套用成功的關鍵。
作者簡介
George THeineman,Gary Pollice和Stanley Selkow均為 Woree ste r PolYteChniC In stitute(伍斯特理工學院)計算機科學系的教授。George是《Component—B ased Software Engineering:Putting the Pieces Together》(Addison—Wesley(的合編者,Gary則是《Head First Object-Oriented Analysis and Design》(O'Reilly)的合著者。
圖書目錄
Part 1
1 Algorithms Matter
Understand the Problem
Experiment if Necessary
Algorithms to the Rescue
Side Story
The Moral of the Story
References
2The Mathematics of Algorithms
Size of a Problem Instance
Rate of Growth of Functions
Analysis in the Best, Average, and Worst Cases.
Performance Families
Mix of Operations
Benchmark Operatxons
One Final Point
References
3Patterns and Domains
Patterns: A Communication Language
Algorithm Pattern Format
Pseudocode Pattern Format
Design Format
Empirical Evaluation Format
Domains and Algorithms
Floating-Point Computations
Manual Memory Allocation
Choosing a Programming Language
References
Part 2
4Sorting Algorithms
Overview
Insertion Sort
Median Sort
Quicksort
Selection Sort
Heap Sort
Counting Sort
Bucket Sort
Criteria for Choosing a Sorting Algorithm
References
5Searching
Overview
Sequential Search
Binary Search
Hash-based Search
Binary Tree Search
6 GraphAIgorithms
Overview
Depth-First Search
Breadth-First Search
Single-Source Shortest Path
All Pairs Shortest Path
Minimum Spanning Tree Algorithms
References
7 Path Finding in AI
Overview
Depth-First Search
Breadth-First Search
A'Search
Comparison
Minimax
NegMax
AlphaBeta
References
8Network Flow Algorithms
Overview
Maximum Flow
Bipartite Matching
Reflections on Augmenting Paths
Minimum Cost Flow
Transshipment
Transportation
Assignment
Linear Programming
References
9 Computational Geometry
Overview
Convex Hull Scan
LineSweep
Nearest Neighbor Queries
Range Queries
References
Part 3
10When All Else Fails
Variations on a Theme
Approximation Algorithms
Offline Algorithms
Parallel Algorithms
Randomized Algorithms
Algorithms That Can Be Wrong, but with Diminishing Probability References
11Epilogue
Overview
Principle: Know Your Data
Principle: Decompose the Problem into Smaller Problems
Principle: Choose the Right Data Structure
Principle: Add Storage to Increase Performance
Principle: If No Solution Is Evident, Construct a Search
Principle: If No Solution Is Evident, Reduce Your Problem to
Another Problem That Has a Solution
Principle: Writing Algorithms Is Hard——Testing Algorithms Is Harder
Part 4
Appendix: Benchmarking
Index
……