Summary Preface Outline Asymptotic-Analysis Divide-and-Conquer (DnC) Overview Multiplication DnC Strategy Master Method Randomization Overview Discrete Probability Randomized Algorithms Reservoir Sampling Sorting Overview Selection Sort Bubble Sort Insertion Sort Shell Sort Merge Sort Heap Sort Quick Sort Non-Comparison Sort Graph Algorithms Overview Minimum Spanning Tree Shortest Path Topological Sort Tree Overview Balanced Search Tree AVL Tree Red-Black Tree B Tree Heap Disjoint Set Threaded Binary Tree Segment Tree Searching Overview Binary Search Graph Search Hash Table String Search Dynamic Programming Overview Fibonacci Numbers LCS problem Greedy Algorithms Overview