Algorithms in a Nutshell A Practical Guide 2nd Edition by George T Heineman ,Gary Pollice , Stanley Selkow – Ebook PDF Instant Download/Delivery:1491948922, 978-1491948927
Full download Algorithms in a Nutshell A Practical Guide 2nd Edition after payment

Product details:
ISBN 10: 1491948922
ISBN 13: 978-1491948927
Author: George T. Heineman ,Gary Pollice , Stanley Selkow
Creating robust software requires the use of efficient algorithms, but programmers seldom think about them until a problem occurs. This updated edition of Algorithms in a Nutshell describes a large number of existing algorithms for solving a variety of problems, and helps you select and implement the right algorithm for your needs―with just enough math to let you understand and analyze algorithm performance.
With its focus on application, rather than theory, this book provides efficient code solutions in several programming languages that you can easily adapt to a specific project. Each major algorithm is presented in the style of a design pattern that includes information to help you understand why and when the algorithm is appropriate.
With this book, you will:
- Solve a particular coding problem or improve on the performance of an existing solution
- Quickly locate algorithms that relate to the problems you want to solve, and determine why a particular algorithm is the right one to use
- Get algorithmic solutions in C, C++, Java, and Python with implementation tips
- Learn the expected performance of an algorithm, and the conditions it needs to perform at its best
- Discover the impact that similar design decisions have on different algorithms
- Learn advanced data structures to improve the efficiency of algorithms
Table of contents:
Preface to the Second Edition
Changes to the Second Edition
Audience
Conventions Used in This Book
Using Code Examples
Safari® Books Online
How to Contact Us
Acknowledgments
1. Thinking in Algorithms
Understand the Problem
Naïve Solution
Intelligent Approaches
Greedy
Divide and Conquer
Parallel
Approximation
Generalization
Summary
References
2. The Mathematics of Algorithms
Size of a Problem Instance
Rate of Growth of Functions
Analysis in the Best, Average, and Worst Cases
Worst Case
Average Case
Best Case
Lower and Upper Bounds
Performance Families
Constant Behavior
Log n Behavior
Sublinear O(nd) Behavior for d < 1
Linear Performance
Linearithmic Performance
Quadratic Performance
Less Obvious Performance Computations
Exponential Performance
Summary of Asymptotic Growth
Benchmark Operations
References
3. Algorithm Building Blocks
Algorithm Template Format
Name
Input/Output
Context
Solution
Analysis
Variations
Pseudocode Template Format
Empirical Evaluation Format
Floating-Point Computation
Performance
Rounding Error
Comparing Floating-Point Values
Special Quantities
Example Algorithm
Name and Synopsis
Input/Output
Context
Solution
Analysis
Common Approaches
Greedy
Divide and Conquer
Dynamic Programming
References
4. Sorting Algorithms
Terminology
Representation
Comparable Elements
Stable Sorting
Criteria for Choosing a Sorting Algorithm
Transposition Sorting
Insertion Sort
Context
Solution
Analysis
Selection Sort
Heap Sort
Context
Solution
Analysis
Variations
Partition-Based Sorting
Context
Solution
Analysis
Variations
Sorting without Comparisons
Bucket Sort
Solution
Analysis
Variations
Sorting with Extra Storage
Merge Sort
Input/Output
Solution
Analysis
Variations
String Benchmark Results
Analysis Techniques
References
5. Searching
Sequential Search
Input/Output
Context
Solution
Analysis
Binary Search
Input/Output
Context
Solution
Analysis
Variations
Hash-Based Search
Input/Output
Context
Solution
Analysis
Variations
Bloom Filter
Input/Output
Context
Solution
Analysis
Binary Search Tree
Input/Output
Context
Solution
Analysis
Variations
References
6. Graph Algorithms
Graphs
Data Structure Design
Depth-First Search
Input/Output
Context
Solution
Analysis
Variations
Breadth-First Search
Input/Output
Context
Solution
Analysis
Single-Source Shortest Path
Input/Output
Solution
Analysis
Dijkstra’s Algorithm for Dense Graphs
Variations
Comparing Single-Source Shortest-Path Options
Benchmark Data
Dense Graphs
Sparse graphs
All-Pairs Shortest Path
Input/Output
Solution
Analysis
Minimum Spanning Tree Algorithms
Input/Output
Solution
Analysis
Variations
Final Thoughts on Graphs
Storage Issues
Graph Analysis
References
7. Path Finding in AI
Game Trees
Static Evaluation Functions
Path-Finding Concepts
Representing State
Calculating Available Moves
Maximum Expansion Depth
Minimax
Input/Output
Context
Solution
Analysis
NegMax
Solution
Analysis
AlphaBeta
Solution
Analysis
Search Trees
Path-Length Heuristic Functions
Depth-First Search
Input/Output
Context
Solution
Analysis
Breadth-First Search
Input/Output
Context
Solution
Analysis
A*Search
Input/Output
Context
Solution
Analysis
Variations
Comparing Search-Tree Algorithms
References
8. Network Flow Algorithms
Network Flow
Maximum Flow
Input/Output
Solution
Analysis
Optimization
Related Algorithms
Bipartite Matching
Input/Output
Solution
Analysis
Reflections on Augmenting Paths
Minimum Cost Flow
Transshipment
Solution
Transportation
Solution
Assignment
Solution
Linear Programming
References
9. Computational Geometry
Classifying Problems
Input Data
Computation
Nature of the Task
Assumptions
Convex Hull
Convex Hull Scan
Input/Output
Context
Solution
Analysis
Variations
Computing Line-Segment Intersections
LineSweep
Input/Output
Context
Solution
Analysis
Variations
Voronoi Diagram
Input/Output
Solution
Analysis
References
10. Spatial Tree Structures
Nearest Neighbor Queries
Range Queries
Intersection Queries
Spatial Tree Structures
k-d Tree
Quadtree
R-Tree
Nearest Neighbor Queries
Input/Output
Context
Solution
Analysis
Variations
Range Query
Input/Output
Context
Solution
Analysis
Quadtrees
Input/Output
Solution
Analysis
Variations
R-Trees
Input/Output
Context
Solution
Analysis
References
11. Emerging Algorithm Categories
Variations on a Theme
Approximation Algorithms
Input/Output
Context
Solution
Analysis
Parallel Algorithms
Probabilistic Algorithms
Estimating the Size of a Set
Estimating the Size of a Search Tree
References
12. Epilogue: Principles of Algorithms
Know Your Data
Decompose a Problem into Smaller Problems
Choose the Right Data Structure
Make the Space versus Time Trade-Off
Construct a Search
Reduce Your Problem to Another Problem
Writing Algorithms Is Hard—Testing Algorithms Is Harder
Accept Approximate Solutions When Possible
Add Parallelism to Increase Performance
A. Benchmarking
Statistical Foundation
Example
Java Benchmarking Solutions
Linux Benchmarking Solutions
Python Benchmarking Solutions
Reporting
Precision
Index
People also search for:
o’reilly algorithms in a nutshell
data structures and algorithms in a nutshell pdf
algorithms in a nutshell 2nd edition pdf
algorithms in a nutshell by george t heineman
Tags: George T Heineman, Gary Pollice, Stanley Selkow, Algorithms in a Nutshell, Practical Guide 2nd


