Useful References Aho, Alfred V. Hopcroft, and Jeffrey D. The Design and Analysis of Computer Algorithms. Reading, MA: Addison-Wesley, ISBN: The classic text, but it lacks topics in network flows and linear programming, as well as more recent algorithms.
|Published (Last):||11 April 2010|
|PDF File Size:||15.82 Mb|
|ePub File Size:||15.4 Mb|
|Price:||Free* [*Free Regsitration Required]|
Includes bibliographical references p. Contents 1. Analyzing Algorithms and Problems: Principles and Examples. Java as an Algorithm Language. A Usable Subset of Java. Organizer Classes. Java-Based Pseudocode Conventions. Mathematical Background. Sets, Tuples, and Relations.
Algebra and Calculus Tools. Elements of Logic. Analyzing Algorithms and Problems. Amount of Work Done. Average and Worst-Case Analysis. Space Usage. Lower Bounds and the Complexity of Problems. Implementation and Programming. Classifying Functions by their Asymptotic Growth Rates. Definitions and Notation. How Important Is Asymptotic Order? Properties of O, Theta, and Omega. Searching an Ordered Array.
Some Solutions. Worst-Case Analysis of Binary Search. Average-Behavior Analysis. Data Abstraction and Basic Data Structures. ADT Specifications. ADT Design Techniques. Recursive ADTs. The List ADT. Binary Tree ADT. The Tree ADT. In-Tree ADT. Stacks and Queues. Stack ADT. Queue ADT. ADTs for Dynamic Sets. Priority Queue ADT. Dictionary ADT. Recursion and Induction. Recursive Procedures. Activation Frames and Recursive Procedure Calls. Hints for Recursion - Method Wrappers for Recursive Procedures.
What is a Proof? Induction Proofs. Induction Proof Schema. Induction Proof on a Recursive Procedure. Proving Correctness of Procedures. Definitions and Terminology. Elementary Control Structures. The Single-Assignment Paradigm. Procedures with Loops. Correctness Proofs as a Debugging Tool. Termination of Recursive Procedures. Correctness of Binary Search. Recurrence Equations. Recursion Trees. Divide-and-Conquer, General Case. Chip and Conquer, or be Conquered.
Insertion Sort. The Strategy. The Algorithm and Analysis. Divide and Conquer. The Quicksort Strategy. The Partition Subroutine. Analysis of Quicksort. Improvements on the Basic Quicksort Algorithm. Merging Sorted Sequences. Worst Case.
Optimality of Merge. Lower Bounds for Sorting by Comparison of Keys. Decision Trees for Sorting Algorithms. Lower Bound for Worst Case. Lower Bound for Average Behavior. The Heapsort Strategy. Heap Construction. Implementation of a Heap and the Heapsort Algorithm. Accelerated Heapsort. Comparison of Four Sorting Methods. The Algorithm. Analysis and Remarks. Radix Sorting. Using Properties of the Keys.
Radix Sort. Selection and Adversary Arguments. The Selection Problem. Lower Bounds. Adversary Arguments. Finding max and min. Finding the Second-Largest Key. The Tournament Method. An Adversary Lower-Bound Argument. Implementation of the Tournament Method for Finding max and secondLargest.
A Divide-and-Conquer Approach. A Lower Bound for Finding the Median. Designing Against an Adversary. Dynamic Sets and Searching. Array Doubling.
Computer Algorithms: Introduction to Design and Analysis
Sign in to the Instructor Resource Centre
Computer Algorithms: Introduction to Design and Analysis, 3rd Edition