×
Listen to your teachers when they tell you WHAT to do. But more importantly, think about it later and ask yourself WHY they told you to do it.
--Your friends at LectureNotes
Close

Design And Analysis Of Algorithm

by Jntu HeroesJntu Heroes
Type: NoteInstitute: Jawaharlal nehru technological university anantapur college of engineering Offline Downloads: 120Views: 3440Uploaded: 1 year ago

Share it with your friends

Suggested Materials

Leave your Comments

Contributors

Jntu Heroes
Jntu Heroes
Lecture Notes for Algorithm Analysis and Design JNTU World
Contents 1 Model and Analysis 1.1 Computing Fibonacci numbers . 1.2 Fast Multiplication . . . . . . . 1.3 Model of Computation . . . . . 1.4 Other models . . . . . . . . . . 1.4.1 External memory model 1.4.2 Parallel Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Warm up problems 2.1 Euclid’s algorithm for GCD . . . . . . 2.1.1 Extended Euclid’s algorithm . . 2.2 Finding the k-th element . . . . . . . . 2.2.1 Choosing a random splitter . . 2.2.2 Median of medians . . . . . . . 2.3 Sorting words . . . . . . . . . . . . . . 2.4 Mergeable heaps . . . . . . . . . . . . 2.4.1 Merging Binomial Heaps . . . . 2.5 A simple semi-dynamic dictionary . . . 2.5.1 Potential method and amortized . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 8 10 11 11 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 15 16 17 18 19 20 21 22 23 24 . . . . . . . . 25 25 27 29 31 32 33 33 34 . . . . . . . . . . . . . . . . . . . . . . . . 3 Optimization I : Brute force and Greedy strategy 3.1 Heuristic search approaches . . . . . . . . . . 3.1.1 Game Trees * . . . . . . . . . . . . . . 3.2 A framework for Greedy Algorithms . . . . . . 3.2.1 Maximal Spanning Tree . . . . . . . . 3.2.2 A Scheduling Problem . . . . . . . . . 3.3 Efficient data structures for MST algorithms . 3.3.1 A simple data structure for union-find 3.3.2 A faster scheme . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 3.3.3 The slowest growing function ? 3.3.4 Putting things together . . . . . 3.3.5 Path compression only . . . . . Compromising with Greedy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Optimization II : Dynamic Programming 4.1 A generic dynamic programming formulation . . . . . . . . . . 4.2 Illustrative examples . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Context Free Parsing . . . . . . . . . . . . . . . . . . . 4.2.2 Longest monotonic subsequence . . . . . . . . . . . . . 4.2.3 Function approximation . . . . . . . . . . . . . . . . . 4.2.4 Viterbi’s algorithm for Maximum likelihood estimation 5 Searching 5.1 Skip Lists - a simple dictionary . . . . . . . . . 5.1.1 Construction of Skip-lists . . . . . . . . . 5.1.2 Analysis . . . . . . . . . . . . . . . . . . 5.2 Treaps : Randomized Search Trees . . . . . . . 5.3 Universal Hashing . . . . . . . . . . . . . . . . . 5.3.1 Example of a Universal Hash function . 5.4 Perfect Hash function . . . . . . . . . . . . . . . 5.4.1 Converting expected bound to worst case 5.5 A log log N priority queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . bound . . . . . . . . . . . . . 6 Multidimensional Searching and Geometric algorithms 6.1 Interval Trees and Range Trees . . . . . . . . . . . . . . 6.1.1 Two Dimensional Range Queries . . . . . . . . . 6.2 k-d trees . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Priority Search Trees . . . . . . . . . . . . . . . . . . . . 6.4 Planar Convex Hull . . . . . . . . . . . . . . . . . . . . . 6.4.1 Jarvis March . . . . . . . . . . . . . . . . . . . . 6.4.2 Graham’s Scan . . . . . . . . . . . . . . . . . . . 6.4.3 Sorting and Convex hulls . . . . . . . . . . . . . . 6.5 A Quickhull Algorithm . . . . . . . . . . . . . . . . . . . 6.5.1 Analysis . . . . . . . . . . . . . . . . . . . . . . . 6.5.2 Expected running time ∗ . . . . . . . . . . . . . . 6.6 Point location using persistent data structure . . . . . . 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 36 37 38 . . . . . . 39 40 40 40 41 42 44 . . . . . . . . . 46 46 46 47 49 51 52 53 54 54 . . . . . . . . . . . . 57 57 58 59 61 62 63 63 64 64 65 67 68
7 Fast Fourier Transform and Applications 7.1 Polynomial evaluation and interpolation . 7.2 Cooley-Tukey algorithm . . . . . . . . . . 7.3 The butterfly network . . . . . . . . . . . 7.4 Schonage and Strassen’s fast multiplication 8 String matching and finger printing 8.1 Rabin Karp fingerprinting . . . . . . . 8.2 KMP algorithm . . . . . . . . . . . . . 8.2.1 Analysis of the KMP algorithm 8.2.2 Pattern Analysis . . . . . . . . 8.3 Generalized String matching . . . . . . 8.3.1 Convolution based approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 71 72 74 75 . . . . . . 78 78 80 81 81 82 82 9 Graph Algorithms 9.1 Applications of DFS . . . . . . . . . . . . . . . . . . . . 9.1.1 Strongly Connected Components (SCC) . . . . . 9.1.2 Biconncted Components . . . . . . . . . . . . . . 9.2 Path problems . . . . . . . . . . . . . . . . . . . . . . . . 9.2.1 Bellman Ford SSSP Algorithm . . . . . . . . . . . 9.2.2 Dijkstra’s SSSP algorithm . . . . . . . . . . . . . 9.2.3 Floyd-Warshall APSP algorithm . . . . . . . . . . 9.3 Maximum flows in graphs . . . . . . . . . . . . . . . . . 9.3.1 Max Flow Min Cut . . . . . . . . . . . . . . . . . 9.3.2 Ford and Fulkerson method . . . . . . . . . . . . 9.3.3 Edmond Karp augmentation strategy . . . . . . . 9.3.4 Monotonicity Lemma and bounding the iterations 9.4 Global Mincut . . . . . . . . . . . . . . . . . . . . . . . . 9.4.1 The contraction algorithm . . . . . . . . . . . . . 9.4.2 Probability of mincut . . . . . . . . . . . . . . . . 9.5 Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 84 85 86 87 88 89 90 91 92 93 94 94 95 96 97 98 10 NP Completeness and Approximation Algorithms 10.1 Classes and reducibility . . . . . . . . . . . . . . . . 10.2 Cook Levin theorem . . . . . . . . . . . . . . . . . 10.3 Common NP complete problems . . . . . . . . . . . 10.3.1 Other important complexity classes . . . . . 10.4 Combating hardness with approximation . . . . . . 10.4.1 Equal partition . . . . . . . . . . . . . . . . 10.4.2 Greedy set cover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 102 103 105 105 107 107 108 3 . . . . . . . . . . . . . . . . . . . . .

Lecture Notes