Topics: algorithm design, algorithm analysis, Algorithm Efficiency, Algorithm Efficiency analysis, Brute Force, Exhaustive Search, Decrease-and-Conquer, Divide-and-Conquer, Transform-and-Conquer, Space and Time Trade-Offs, Dynamic Programming, Greedy Technique, Iterative Improvement, Algorithm Power, Algorithmic Problem Solving, Nonrecursive Algorithms mathematical analysis, recursive Algorithms mathematical analysis, Selection Sort, Bubble Sort, Sequential Search, Brute-Force String Matching, Closest-Pair Problems, Convex-Hull Problems, depth-First Search, Breadth-First Search, Insertion Sort, Topological Sorting, Variable-Size-Decrease Algorithms, Decrease-by-a-Constant-Factor Algorithms, binary search, Mergesort, quicksort, Binary Tree Traversals, Strassen’s Matrix Multiplication, Gaussian Elimination, presorting, Balanced Search Trees, Heaps, Heapsort, Horner’s Rule, Binary Exponentiation, Problem Reduction, B-Trees, hashing, Knapsack Problem, Optimal Binary Search Trees, Warshall’s Algorithm, Floyd’s Algorithm, Prim’s Algorithm, Kruskal’s Algorithm, Dijkstra’s Algorithm, Huffman Trees, huffman Codes, Simplex Method, Maximum-Flow Problem, Stable Marriage Problem, Lower-Bound Arguments, Decision Trees, Numerical Algorithms, Backtracking, Approximation Algorithms