Introduction to the Design and Analysis of Algorithms

Introduction to the Design and Analysis of Algorithms, 3rd edition

  • Anany Levitin

Choose the option that's right for you

Single

$9.99 / mo

4-month minimum term for $39.96

  • Access this eText title
  • Up to 2 devices

Multi

$14.99 / mo

4-month minimum term for $59.96

  • Access over 1,500 titles
  • Up to 2 devices
  • Discounted tutor access

Learn more, spend less

  • Icon

    Learn anytime, anywhere

    Get the app to access your eText whenever you need it

  • Icon

    Make it your own

    Your notes. Your highlights. Your eText

  • Icon

    Find it fast

    Quickly navigate your eText with search

  • Icon

    Stay organized

    Access all your eTexts in one place

  • Icon

    Easily continue access

    Keep learning with auto-renew

Overview

Introduction to the Design and Analysis of Algorithms presents the subject in a coherent and innovative manner. The text examines new algorithm design techniques and methods for analysis and includes puzzles and other learner-focused features to help you strengthen your algorithmic problem-solving skills.

Published by Pearson (July 14th 2021) - Copyright © 2012

ISBN-13: 9780137541133

Table of contents

1. Introduction
What Is an Algorithm?
Exercises
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
Important Problem Types
Sorting
Searching
String Processing
Graph Problems
Combinatorial Problems
Geometric Problems
Numerical Problems
Exercises
Fundamental Data Structures
Linear Data Structures
Graphs
Trees
Sets and Dictionaries
Exercises
Summary

2. Fundamentals of the Analysis of Algorithm Efficiency
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
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
Mathematical Analysis of Nonrecursive Algorithms
Exercises
Mathematical Analysis of Recursive Algorithms
Exercises
Example: Computing the nth Fibonacci Number
Exercises
Empirical Analysis of Algorithms
Exercises
Algorithm Visualization
Summary

3. Brute Force and Exhaustive Search
Selection Sort and Bubble Sort
Selection Sort
Bubble Sort
Exercises
Sequential Search and Brute-Force String Matching
Sequential Search
Brute-Force String Matching
Exercises
Closest-Pair and Convex-Hull Problems by Brute Force
Closest-Pair Problem
Convex-Hull Problem
Exercises
Exhaustive Search
Traveling Salesman Problem
Knapsack Problem
Assignment Problem
Exercises
Depth-First Search and Breadth-First Search
Depth-First Search
Breadth-First Search
Exercises
Summary

4. Decrease-and-Conquer
Insertion Sort
Exercises
Topological Sorting
Exercises
Algorithms for Generating Combinatorial Objects
Generating Permutations
Generating Subsets
Exercises
Decrease-by-a-Constant-Factor Algorithms
Binary Search
Fake-Coin Problem
Russian Peasant Multiplication
Josephus Problem
Exercises
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
Summary

5. Divide-and-Conquer
Mergesort
Exercises
Quicksort
Exercises
Binary Tree Traversals and Related Properties
Exercises
Multiplication of Large Integers and
Strassen's Matrix Multiplication
Multiplication of Large Integers
Strassen's Matrix Multiplication
Exercises
The Closest-Pair and Convex-Hull Problems
by Divide-and-Conquer
The Closest-Pair Problem
Convex-Hull Problem
Exercises
Summary

6. Transform-and-Conquer
Presorting
Exercises
Gaussian Elimination
LU Decomposition
Computing a Matrix Inverse
Computing a Determinant
Exercises
Balanced Search Trees
AVL Trees
- Trees
Exercises
Heaps and Heapsort
Notion of the Heap
Heapsort
Exercises
Horner's Rule and Binary Exponentiation
Horner's Rule
Binary Exponentiation
Exercises
Problem Reduction
Computing the Least Common Multiple
Counting Paths in a Graph
Reduction of Optimization Problems
Linear Programming
Reduction to Graph Problems
Exercises
Summary

7. Space and Time Trade-Offs
Sorting by Counting
Exercises
Input Enhancement in String Matching
Horspool's Algorithm
Boyer-Moore Algorithm
Exercises
Hashing
Open Hashing (Separate Chaining)
Closed Hashing (Open Addressing)
Exercises
B-Trees
Exercises
Summary

8. Dynamic Programming
Three Basic Examples
Exercises
The Knapsack Problem and Memory Functions
Memory Functions
Exercises
Optimal Binary Search Trees
Exercises
Warshall's and Floyd's Algorithms
Warshall's Algorithm
Floyd's Algorithm for the All-Pairs Shortest-Paths Problem
Exercises
Summary

9. Greedy Technique
Prim's Algorithm
Exercises
Kruskal's Algorithm
Disjoint Subsets and Union-Find Algorithms
Exercises
Dijkstra's Algorithm
Exercises
Huffman Trees and Codes
Exercises
Summary

10. Iterative Improvement
The Simplex Method
Geometric Interpretation of Linear Programming
An Outline of the Simplex Method
Further Notes on the Simplex Method
Exercises
The Maximum-Flow Problem
Exercises
Maximum Matching in Bipartite Graphs
Exercises
The Stable Marriage Problem
Exercises
Summary

11. Limitations of Algorithm Power
Lower-Bound Arguments
Trivial Lower Bounds
Information-Theoretic Arguments
Adversary Arguments
Problem Reduction
Exercises
Decision Trees
Decision Trees for Sorting
Decision Trees for Searching a Sorted Array
Exercises
P, NP, and NP-Complete Problems
P and NP Problems
NP-Complete Problems
Exercises
Challenges of Numerical Algorithms
Exercises
Summary

12. Coping with the Limitations of Algorithm Power
Backtracking
n-Queens Problem
Hamiltonian Circuit Problem
Subset-Sum Problem
General Remarks
Exercises
Branch-and-Bound
Assignment Problem
Knapsack Problem
Traveling Salesman Problem
Exercises
Approximation Algorithms for NP-Hard Problems
Approximation Algorithms for the Traveling Salesman Problem
Approximation Algorithms for the Knapsack Problem
Exercises
Algorithms for Solving Nonlinear Equations
Bisection Method
Method of False Position
Newton's Method
Exercises
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

Your questions answered

Introducing Pearson+. Reimagined learning, designed for you. Choose from one eText or over 1,500 eTexts and study tools, all in one place, for one low monthly subscription. A new way to buy books that fits your budget. Make the most of your study time with offline access, enhanced search, notes and flashcards — to get organized, get the work done quicker and get results. Plus, with the app, put textbooks in your pocket and learn wherever. It's time to upgrade the textbook and simplify learning, so you can have time to live too.

Pearson eText is an easy-to-use digital textbook available from Pearson+. Make it your own by adding notes and highlights. Download the Pearson+ mobile app to learn on the go, even offline. Listen on the go with our new audiobook feature, available for most titles.

When you choose a plan, you're signing up for a 4-month term. We will charge your payment method each month until your 4-month term has ended. After that, we'll automatically renew your subscription and charge you on a month-to-month basis unless you turn off auto-renewal in My account.

When you purchase a Pearson+ subscription, it will last a minimum of 4 months, and then automatically renew each month thereafter unless you turn off auto-renew in My account.

If you want to stop your subscription at the end of your 4-month term, simply turn off auto-renew from My account. To avoid the next payment charge, make sure you turn auto renewal off 1 day before the auto renewal date.

You can subscribe again after auto-renew has been turned off by purchasing another Pearson+ subscription.

We use your credit card to renew your subscription automatically. To make sure your learning is uninterrupted, please check your card details before your first monthly payment.

With a Multi Pearson+ subscription plan, you can download up to 5 titles on the Pearson+ app from My list on each of your authorized devices every month.

When you're using your Multi Pearson+ subscription plan in a browser, you can select and read from as many titles as you like.