Design and Analysis of Algorithms [CSE Department]

Design and Analysis of Algorithms [CSE Department]


Design and Analysis of Algorithms








Chapter 1 : Introduction


1. Introduction to the Design and Analysis of Algorithms
2. What Is an Algorithm?
3. Fundamentals of Algorithmic Problem Solving
4. Ascertaining the Capabilities of the Computational Device
5. Algorithm Design Techniques
6. Designing an Algorithm and Data Structures
7. Methods of Specifying an Algorithm
8. Proving an Algorithm�s Correctness
9. Analyzing an Algorithm
10. Coding an Algorithm
11. Important Problem Types in Algorithms Analysis
12. Fundamental Data Structures



Chapter 2 : Fundamentals of the Analysis of Algorithm Eficiency


1. The Analysis Framework
2. Asymptotic Notations and Basic Efficiency Classes
3. Mathematical Analysis of Non recursive Algorithms
4. Mathematical Analysis of Recursive Algorithms
5. Example: Computing the nth Fibonacci Number
6. Empirical Analysis of Algorithms
7. Algorithm Visualization



Chapter 3 : Brute Force and Exhaustive Search


1. Brute Force and Exhaustive Search
2. Selection Sort and Bubble Sort
3. Sequential Search and Brute-Force String Matching
4. Closest-Pair and Convex-Hull Problems by Brute Force
5. Exhaustive Search
6. Depth-First Search and Breadth-First Search



Chapter 4 : Decrease and Conquer


1. Decrease and Conquer
2. Insertion Sort
3. Topological Sorting
4. Algorithms for Generating Combinatorial Objects
5. Decrease by a Constant Factor Algorithms
6. Variable Size Decrease Algorithms



Chapter 5 : Divide and Conquer


1. Divide and Conquer
2. Mergesort
3. Quicksort
4. Binary Tree Traversals and Related Properties
5. Multiplication of Large Integers
6. Strassen�s Matrix Multiplication
7. The Closest Pair Problem by Divide and Conquer
8. Convex Hull Problems by Divide and Conquer



Chapter 6 : Transform and Conquer


1. Transform and Conquer
2. Presorting
3. Gaussian Elimination
4. Balanced Search Trees: AVL Trees and 2-3 Trees
5. Heaps and Heapsort
6. Horner�s Rule and Binary Exponentiation
7. Problem Reduction



Chapter 7 : Space and Time Trade Offs


1. Space and Time Trade-Offs
2. Sorting by Counting
3. Input Enhancement in String Matching: Horspool�s and Boyer-Moore Algorithm
4. Open and Closed Hashing
5. B-Trees Algorithms



Chapter 8 : Dynamic Programming


1. Dynamic Programming
2. Dynamic Programming: Three Basic Examples
3. The Knapsack Problem and Memory Functions
4. Optimal Binary Search Trees
5. Warshall�s and Floyd�s Algorithms



Chapter 9 : Greedy Technique


1. Greedy Technique
2. Prim�s Algorithm
3. Kruskal�s Algorithm
4. Dijkstra�s Algorithm
5. Huffman Trees and Codes



Chapter 10 : Iterative Improvement


1. Iterative Improvement
2. The Simplex Method
3. The Iterative Maximum-Flow Problem
4. Maximum Matching in Bipartite Graphs
5. The Stable Marriage Problem



Chapter 11 : Limitations of Algorithm Power


1. Limitations of Algorithm Power
2. Lower-Bound Arguments
3. Decision Trees algorithms
4. P , NP , and NP-Complete Problems
5. Challenges of Numerical Algorithms



Chapter 12 : Coping with the Limitations of Algorithm Power


1. Coping with the Limitations of Algorithm Power
2. Backtracking
3. Branch-and-Bound
4. Approximation Algorithms for NP -Hard Problems
5. Approximation Algorithms for the Traveling Salesman Problem
6. Approximation Algorithms for the Knapsack Problem
7. Algorithms for Solving Nonlinear Equations



Comments