algorithm design using divide & conquer method
TRANSCRIPT
![Page 1: ALGORITHM DESIGN USING DIVIDE & CONQUER METHOD](https://reader033.vdocument.in/reader033/viewer/2022042907/6269fced4e9c4b0063101e85/html5/thumbnails/1.jpg)
ALGORITHM DESIGN USING DIVIDE & CONQUER METHOD: II
Partha P ChakrabartiIndian Institute of Technology Kharagpur
![Page 2: ALGORITHM DESIGN USING DIVIDE & CONQUER METHOD](https://reader033.vdocument.in/reader033/viewer/2022042907/6269fced4e9c4b0063101e85/html5/thumbnails/2.jpg)
Algorithm Design by Recursion Transformation1. Initial Solution
a. Recursive Definition – A set of Solutionsb. Inductive Proof of Correctnessc. Analysis Using Recurrence Relations
2. Exploration of Possibilitiesa. Decomposition or Unfolding of the Recursion Treeb. Examination of Structures formedc. Re-composition Properties
3. Choice of Solution & Complexity Analysisa. Balancing the Split, Choosing Pathsb. Identical Sub-problems
4. Data Structures & Complexity Analysisa. Remembering Past Computation for Futureb. Space Complexity
5. Final Algorithm & Complexity Analysisa. Traversal of the Recursion Treeb. Pruning
6. Implementationa. Available Memory, Time, Quality of Solution, etc
Algorithms and Programs Pseudo-Code Algorithms + Data Structures = Programs Initial Solutions + Analysis + Solution
Refinement + Data Structures = FinalAlgorithm
Use of Recursive Definitions as InitialSolutions
Recurrence Equations for Proofs andAnalysis
Solution Refinement through RecursionTransformation and Traversal
Data Structures for saving pastcomputation for future use
![Page 3: ALGORITHM DESIGN USING DIVIDE & CONQUER METHOD](https://reader033.vdocument.in/reader033/viewer/2022042907/6269fced4e9c4b0063101e85/html5/thumbnails/3.jpg)
Basics of Divide & Conquer Method
![Page 4: ALGORITHM DESIGN USING DIVIDE & CONQUER METHOD](https://reader033.vdocument.in/reader033/viewer/2022042907/6269fced4e9c4b0063101e85/html5/thumbnails/4.jpg)
Sorting & Searching Problems
![Page 5: ALGORITHM DESIGN USING DIVIDE & CONQUER METHOD](https://reader033.vdocument.in/reader033/viewer/2022042907/6269fced4e9c4b0063101e85/html5/thumbnails/5.jpg)
Sorting by Max Removal
![Page 6: ALGORITHM DESIGN USING DIVIDE & CONQUER METHOD](https://reader033.vdocument.in/reader033/viewer/2022042907/6269fced4e9c4b0063101e85/html5/thumbnails/6.jpg)
Sorting by Max Removal: Data Structure
![Page 7: ALGORITHM DESIGN USING DIVIDE & CONQUER METHOD](https://reader033.vdocument.in/reader033/viewer/2022042907/6269fced4e9c4b0063101e85/html5/thumbnails/7.jpg)
Sorting by Max Removal: Finalization
![Page 8: ALGORITHM DESIGN USING DIVIDE & CONQUER METHOD](https://reader033.vdocument.in/reader033/viewer/2022042907/6269fced4e9c4b0063101e85/html5/thumbnails/8.jpg)
Insertion Sort
![Page 9: ALGORITHM DESIGN USING DIVIDE & CONQUER METHOD](https://reader033.vdocument.in/reader033/viewer/2022042907/6269fced4e9c4b0063101e85/html5/thumbnails/9.jpg)
Insertion Sort: Data Structure
![Page 10: ALGORITHM DESIGN USING DIVIDE & CONQUER METHOD](https://reader033.vdocument.in/reader033/viewer/2022042907/6269fced4e9c4b0063101e85/html5/thumbnails/10.jpg)
Insertion Sort: Finalization
![Page 11: ALGORITHM DESIGN USING DIVIDE & CONQUER METHOD](https://reader033.vdocument.in/reader033/viewer/2022042907/6269fced4e9c4b0063101e85/html5/thumbnails/11.jpg)
Overview of Algorithm Design 1. Initial Solution
a. Recursive Definition – A set of Solutionsb. Inductive Proof of Correctnessc. Analysis Using Recurrence Relations
2. Exploration of Possibilitiesa. Decomposition or Unfolding of the Recursion Treeb. Examination of Structures formedc. Re-composition Properties
3. Choice of Solution & Complexity Analysisa. Balancing the Split, Choosing Pathsb. Identical Sub-problems
4. Data Structures & Complexity Analysisa. Remembering Past Computation for Futureb. Space Complexity
5. Final Algorithm & Complexity Analysisa. Traversal of the Recursion Treeb. Pruning
6. Implementationa. Available Memory, Time, Quality of Solution, etc
1. Core Methodsa. Divide and Conquerb. Greedy Algorithmsc. Dynamic Programmingd. Branch-and-Bounde. Analysis using Recurrencesf. Advanced Data Structuring
2. Important Problems to be addresseda. Sorting and Searchingb. Strings and Patternsc. Trees and Graphsd. Combinatorial Optimization
3. Complexity & Advanced Topicsa. Time and Space Complexityb. Lower Boundsc. Polynomial Time, NP-Hardd. Parallelizability, Randomization
![Page 12: ALGORITHM DESIGN USING DIVIDE & CONQUER METHOD](https://reader033.vdocument.in/reader033/viewer/2022042907/6269fced4e9c4b0063101e85/html5/thumbnails/12.jpg)
Thank you
Any Questions?