module 2 divide and conquer module 2 divide and conquer
play

Module 2: Divide and Conquer Module 2: Divide and Conquer Harivinod - PowerPoint PPT Presentation

Design and Analysis of Algorithms 18CS42 Module 2: Divide and Conquer Module 2: Divide and Conquer Harivinod N Harivinod N Dept. of Computer Science and Engineering Dept. of Computer Science and Engineering VCET VCET Puttur Puttur Module


  1. Design and Analysis of Algorithms 18CS42 Module 2: Divide and Conquer Module 2: Divide and Conquer Harivinod N Harivinod N Dept. of Computer Science and Engineering Dept. of Computer Science and Engineering VCET VCET Puttur Puttur

  2. Module 2 – Outline Divide and Conquer 1. General method 2. Recurrence equation 3. Algorithm: Binary search 4. Algorithm: Finding the maximum and minimum 5. Algorithm: Merge sort 5. Algorithm: Merge sort 6. Algorithm: Quick sort 7. Algorithm: Strassen’s matrix multiplication 8. Advantages and Disadvantages 9. Decrease and Conquer Approach 10. Algorithm: Topological Sort Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 2

  3. Module 2 – Outline Divide and Conquer 1. General method 2. Recurrence equation 3. Algorithm: Binary search 4. Algorithm: Finding the maximum and minimum 4. Algorithm: Finding the maximum and minimum 5. Algorithm: Merge sort 6. Algorithm: Quick sort 7. Algorithm: Strassen’s matrix multiplication 8. Advantages and Disadvantages 9. Decrease and Conquer Approach 10. Algorithm: Topological Sort Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 3

  4. Divide and Conquer Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 4

  5. Control Abstraction for Divide &Conquer Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 5

  6. Module 2 – Outline Divide and Conquer 1. General method 2. Recurrence equation 3. Algorithm: Binary search 4. Algorithm: Finding the maximum and minimum 5. Algorithm: Merge sort 5. Algorithm: Merge sort 6. Algorithm: Quick sort 7. Algorithm: Strassen’s matrix multiplication 8. Advantages and Disadvantages 9. Decrease and Conquer Approach 10. Algorithm: Topological Sort Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 6

  7. Recurrence equation for Divide and Conquer If the size of problem ‘p’ is n and the sizes of the ‘k’ sub problems are n 1 , n 2 ….n k , respectively, then Where, Where, • T(n) is the time for divide and conquer method on any input of size n and • g(n) is the time to compute answer directly for small inputs. • The function f(n) is the time for dividing the problem ‘p’ and combining the solutions to sub problems. Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 7

  8. Recurrence equation for Divide and Conquer • Generally, an instance of size n can be divided into b instances of size n/b , • Assuming n = b k , where f(n) is a function that accounts for the time spent on dividing the problem into smaller ones and on combining their solutions. Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 8

  9. Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 9

  10. Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 10

  11. Will be solved under topic Stressens Matrix Multiplication Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 11

  12. Solving recurrence relation using Master theorem It states that, in recurrence equation T(n) = aT(n/b) + f(n), If f(n) ∈ Θ (n d ) where d ≥ 0 then b b Analogous results hold for the Ο and Ω notations, too. Example: Here a = 2, b = 2, and d = 0; hence, since a >b d , Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 12

  13. Module 2 – Outline Divide and Conquer 1. General method 2. Recurrence equation 3. Algorithm: Binary search 4. Algorithm: Finding the maximum and minimum 5. Algorithm: Merge sort 5. Algorithm: Merge sort 6. Algorithm: Quick sort 7. Algorithm: Strassen’s matrix multiplication 8. Advantages and Disadvantages 9. Decrease and Conquer Approach 10. Algorithm: Topological Sort Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 13

  14. Binary Search Problem definition: • Let a i , 1 ≤ i ≤ n be a list of elements that are sorted in non-decreasing order. • The problem is to find whether a given element x is present in the list or not. present in the list or not. – If x is present we have to determine a value j (element’s position) such that a j =x. – If x is not in the list, then j is set to zero. Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 14

  15. Binary Search Solution: Let P = (n, a i …a l , x) denote an arbitrary instance of search problem - where n is the number of elements in the list, - a i …a l is the list of elements and i l - x is the key element to be searched Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 15

  16. Binary Search Pseudocode Step 1: Pick an index q in the middle range [i, l ] i.e. q =   (n + 1)/2 and compare x with a q . Step 2: if x = a q i.e key element is equal to mid element, the problem is immediately solved. Step 3: if x < a in this case x has to be searched for only in Step 3: if x < a q in this case x has to be searched for only in the sub-list a i, a i+1, …… , a q-1. Therefore problem reduces to (q- i, a i …a q-1 , x). Step 4: if x > a q , x has to be searched for only in the sub-list a q+1, ...,., a l . Therefore problem reduces to ( l -i, a q+1 …a l , x). Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 16

  17. Recursive Binary search algorithm Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 17

  18. Iterative binary search Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 18

  19. Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 19

  20. Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 20

  21. Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 21

  22. Analysis • Time Complexity Proof: Not available in the notes ! Recurrence relation (for worst case) T(n) = T(n/2) + c Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 22

  23. Analysis Space Complexity – Iterative Binary search: Constant memory space – Recursive: proportional to recursion stack. Pros Efficient on very big list, Efficient on very big list, – – – Can be implemented iteratively/recursively. Cons – Interacts poorly with the memory hierarchy – Requires sorted list as an input – Due to random access of list element, needs arrays instead of linked list. Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 23

  24. Module 2 – Outline Divide and Conquer 1. General method 2. Recurrence equation 3. Algorithm: Binary search 4. Algorithm: Finding the maximum and minimum 5. Algorithm: Merge sort 5. Algorithm: Merge sort 6. Algorithm: Quick sort 7. Algorithm: Strassen’s matrix multiplication 8. Advantages and Disadvantages 9. Decrease and Conquer Approach 10. Algorithm: Topological Sort Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 24

  25. Max Min Problem statement • Given a list of n elements, the problem is to find the maximum and minimum items. A simple and straight forward algorithm to achieve this is given below. this is given below. Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 25

  26. Straight Max Min (Brute Force MaxMin) • 2(n-1) comparisons in the best, average & worst cases. • By realizing the comparison of a[i]>max is false, improvement in a algorithm can be done. – Hence we can replace the contents of the for loop by, – Hence we can replace the contents of the for loop by, If(a[i]>Max) then Max = a[i]; Else if (a[i]< min) min=a[i] – On the average a[i] is > max half the time. – So, the avg. no. of comparison is 3n/2-1 . Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 26

  27. Algorithm based on D & C strategy Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 27

  28. 18CS42-Design and Analysis of Algorithms Harivinod N 28 Feb-May 2020

  29. Example 18CS42-Design and Analysis of Algorithms Harivinod N 29 Feb-May 2020

  30. Analysis - Time Complexity Compared with the straight forward method (2n-2) 18CS42-Design and Analysis of Algorithms this method saves 25% in comparisons. Harivinod N 30 Feb-May 2020

  31. Module 2 – Outline Divide and Conquer 1. General method 2. Recurrence equation 3. Algorithm: Binary search 4. Algorithm: Finding the maximum and minimum 5. Algorithm: Merge sort 5. Algorithm: Merge sort 6. Algorithm: Quick sort 7. Algorithm: Strassen’s matrix multiplication 8. Advantages and Disadvantages 9. Decrease and Conquer Approach 10. Algorithm: Topological Sort Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 31

  32. Merge Sort • Merge sort is a perfect example of divide-and conquer technique. • It sorts a given array by – dividing it into two halves, – sorting each of them recursively, and sorting each of them recursively, and – then merging the two smaller sorted arrays into a single sorted one. Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 32

  33. Merge sort - example Harivinod N 18CS42-Design and Analysis of Algorithms Feb-May 2020 33

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend