-> Introduction to the Design and Analysis of Algorithms

-> What Is an Algorithm?

-> Fundamentals of Algorithmic Problem Solving

-> Ascertaining the Capabilities of the Computational Device

-> 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

-> Important Problem Types in Algorithms Analysis

-> Fundamental Data Structures

-> The Analysis Framework

-> Asymptotic Notations and Basic Efficiency Classes

-> Mathematical Analysis of Non recursive Algorithms

-> Mathematical Analysis of Recursive Algorithms

-> Example: Computing the nth Fibonacci Number

-> Empirical Analysis of Algorithms

-> Algorithm Visualization

-> Brute Force and Exhaustive Search

-> Selection Sort and Bubble Sort

-> Sequential Search and Brute-Force String Matching

-> Closest-Pair and Convex-Hull Problems by Brute Force

-> Exhaustive Search

-> Depth-First Search and Breadth-First Search

-> Decrease and Conquer

-> Insertion Sort

-> Topological Sorting

-> Algorithms for Generating Combinatorial Objects

-> Decrease by a Constant Factor Algorithms

-> Variable Size Decrease Algorithms

-> Divide and Conquer

-> Mergesort

-> Quicksort

-> Binary Tree Traversals and Related Properties

-> Multiplication of Large Integers

-> Strassen’s Matrix Multiplication

-> The Closest Pair Problem by Divide and Conquer

-> Convex Hull Problems by Divide and Conquer

-> Transform and Conquer

-> Presorting

-> Gaussian Elimination

-> Balanced Search Trees: AVL Trees and 2-3 Trees

-> Heaps and Heapsort

-> Horner’s Rule and Binary Exponentiation

-> Problem Reduction

-> Space and Time Trade-Offs

-> Sorting by Counting

-> Input Enhancement in String Matching: Horspool’s and Boyer-Moore Algorithm

-> Open and Closed Hashing

-> B-Trees Algorithms

-> Dynamic Programming

-> Dynamic Programming: Three Basic Examples

-> The Knapsack Problem and Memory Functions

-> Optimal Binary Search Trees

-> Warshall’s and Floyd’s Algorithms

-> Greedy Technique

-> Prim’s Algorithm

-> Kruskal’s Algorithm

-> Dijkstra’s Algorithm

-> Huffman Trees and Codes

-> Iterative Improvement

-> The Simplex Method

-> The Iterative Maximum-Flow Problem

-> Maximum Matching in Bipartite Graphs

-> The Stable Marriage Problem

-> Limitations of Algorithm Power

-> Lower-Bound Arguments

-> Decision Trees algorithms

-> P , NP , and NP-Complete Problems

-> Challenges of Numerical Algorithms

-> Coping with the Limitations of Algorithm Power

-> Backtracking

-> Branch-and-Bound

-> Approximation Algorithms for NP -Hard Problems

-> Approximation Algorithms for the Traveling Salesman Problem

-> Approximation Algorithms for the Knapsack Problem

-> Algorithms for Solving Nonlinear Equations

Recent New Topics :