Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 2133:Data Structures Merge Sort Solving Recurrences The Master Theorem.

Similar presentations


Presentation on theme: "CS 2133:Data Structures Merge Sort Solving Recurrences The Master Theorem."— Presentation transcript:

1 CS 2133:Data Structures Merge Sort Solving Recurrences The Master Theorem

2 Merge Sort MergeSort(A, left, right) { if (left < right) { mid = floor((left + right) / 2); MergeSort(A, left, mid); MergeSort(A, mid+1, right); Merge(A, left, mid, right); } // Merge() takes two sorted subarrays of A and // merges them into a single sorted subarray of A // (how long should this take?)

3 Merge Sort: Example Show MergeSort() running on the array A = {10, 5, 7, 6, 1, 4, 8, 3, 2, 9};

4 Analysis of Merge Sort StatementEffort l So T(n) =  (1) when n = 1, and 2T(n/2) +  (n) when n > 1 l So what (more succinctly) is T(n)? MergeSort(A, left, right) {T(n) if (left < right) {  (1) mid = floor((left + right) / 2);  (1) MergeSort(A, left, mid);T(n/2) MergeSort(A, mid+1, right);T(n/2) Merge(A, left, mid, right);  (n) }

5 Recurrences l The expression: is a recurrence. n Recurrence: an equation that describes a function in terms of its value on smaller functions

6 Recurrence Examples

7 Solving Recurrences l Substitution method l Iteration method l Master method

8 Solving Recurrences l The substitution method n A.k.a. the “making a good guess method” n Guess the form of the answer, then use induction to find the constants and show that solution works n This and several other methods are usually done in discrete math so we will skip them at this time.

9 Solving Recurrences l Another option is what the book calls the “iteration method” n Expand the recurrence n Work some algebra to express as a summation n Evaluate the summation l We will show several examples

10 l s(n) = c + s(n-1) c + c + s(n-2) 2c + s(n-2) 2c + c + s(n-3) 3c + s(n-3) … kc + s(n-k) = ck + s(n-k)

11 l So far for n >= k we have n s(n) = ck + s(n-k) l What if k = n? n s(n) = cn + s(0) = cn

12 l So far for n >= k we have n s(n) = ck + s(n-k) l What if k = n? n s(n) = cn + s(0) = cn l So l Thus in general n s(n) = cn

13 l s(n) =n + s(n-1) =n + n-1 + s(n-2) =n + n-1 + n-2 + s(n-3) =n + n-1 + n-2 + n-3 + s(n-4) =…=… = n + n-1 + n-2 + n-3 + … + n-(k-1) + s(n-k)

14 l s(n) =n + s(n-1) =n + n-1 + s(n-2) =n + n-1 + n-2 + s(n-3) =n + n-1 + n-2 + n-3 + s(n-4) =… = n + n-1 + n-2 + n-3 + … + n-(k-1) + s(n-k) =

15 l So far for n >= k we have

16 l What if k = n?

17 l So far for n >= k we have l What if k = n?

18 l So far for n >= k we have l What if k = n? l Thus in general

19 l T(n) = 2T(n/2) + c 2(2T(n/2/2) + c) + c 2 2 T(n/2 2 ) + 2c + c 2 2 (2T(n/2 2 /2) + c) + 3c 2 3 T(n/2 3 ) + 4c + 3c 2 3 T(n/2 3 ) + 7c 2 3 (2T(n/2 3 /2) + c) + 7c 2 4 T(n/2 4 ) + 15c … 2 k T(n/2 k ) + (2 k - 1)c

20 l So far for n > 2k we have n T(n) = 2 k T(n/2 k ) + (2 k - 1)c l What if k = lg n? n T(n) = 2 lg n T(n/2 lg n ) + (2 lg n - 1)c = n T(n/n) + (n - 1)c = n T(1) + (n-1)c = nc + (n-1)c = (2n - 1)c

21 l T(n) = aT(n/b) + cn a(aT(n/b/b) + cn/b) + cn a 2 T(n/b 2 ) + cna/b + cn a 2 T(n/b 2 ) + cn(a/b + 1) a 2 (aT(n/b 2 /b) + cn/b 2 ) + cn(a/b + 1) a 3 T(n/b 3 ) + cn(a 2 /b 2 ) + cn(a/b + 1) a 3 T(n/b 3 ) + cn(a 2 /b 2 + a/b + 1) … a k T(n/b k ) + cn(a k-1 /b k-1 + a k-2 /b k-2 + … + a 2 /b 2 + a/b + 1)

22 l So we have n T(n) = a k T(n/b k ) + cn(a k-1 /b k-1 +... + a 2 /b 2 + a/b + 1) l For k = log b n n n = b k n T(n)= a k T(1) + cn(a k-1 /b k-1 +... + a 2 /b 2 + a/b + 1) = a k c + cn(a k-1 /b k-1 +... + a 2 /b 2 + a/b + 1) = ca k + cn(a k-1 /b k-1 +... + a 2 /b 2 + a/b + 1) = cna k /b k + cn(a k-1 /b k-1 +... + a 2 /b 2 + a/b + 1) = cn(a k /b k +... + a 2 /b 2 + a/b + 1)

23 l So with k = log b n n T(n) = cn(a k /b k +... + a 2 /b 2 + a/b + 1) l What if a = b? n T(n)= cn(k + 1) = cn(log b n + 1) =  (n log n)

24 l So with k = log b n n T(n) = cn(a k /b k +... + a 2 /b 2 + a/b + 1) l What if a < b?

25 l So with k = log b n n T(n) = cn(a k /b k +... + a 2 /b 2 + a/b + 1) l What if a < b? n Recall that  (x k + x k-1 + … + x + 1) = (x k+1 -1)/(x-1)

26 l So with k = log b n n T(n) = cn(a k /b k +... + a 2 /b 2 + a/b + 1) l What if a < b? n Recall that  (x k + x k-1 + … + x + 1) = (x k+1 -1)/(x-1) n So:

27 l So with k = log b n n T(n) = cn(a k /b k +... + a 2 /b 2 + a/b + 1) l What if a < b? n Recall that  (x k + x k-1 + … + x + 1) = (x k+1 -1)/(x-1) n So: n T(n) = cn ·  (1) =  (n)

28 l So with k = log b n n T(n) = cn(a k /b k +... + a 2 /b 2 + a/b + 1) l What if a > b?

29 l So with k = log b n n T(n) = cn(a k /b k +... + a 2 /b 2 + a/b + 1) l What if a > b?

30 l So with k = log b n n T(n) = cn(a k /b k +... + a 2 /b 2 + a/b + 1) l What if a > b? n T(n) = cn ·  (a k / b k )

31 l So with k = log b n n T(n) = cn(a k /b k +... + a 2 /b 2 + a/b + 1) l What if a > b? n T(n) = cn ·  (a k / b k ) = cn ·  (a log n / b log n ) = cn ·  (a log n / n)

32 l So with k = log b n n T(n) = cn(a k /b k +... + a 2 /b 2 + a/b + 1) l What if a > b? n T(n) = cn ·  (a k / b k ) = cn ·  (a log n / b log n ) = cn ·  (a log n / n) recall logarithm fact: a log n = n log a

33 l So with k = log b n n T(n) = cn(a k /b k +... + a 2 /b 2 + a/b + 1) l What if a > b? n T(n) = cn ·  (a k / b k ) = cn ·  (a log n / b log n ) = cn ·  (a log n / n) recall logarithm fact: a log n = n log a = cn ·  (n log a / n) =  (cn · n log a / n)

34 l So with k = log b n n T(n) = cn(a k /b k +... + a 2 /b 2 + a/b + 1) l What if a > b? n T(n) = cn ·  (a k / b k ) = cn ·  (a log n / b log n ) = cn ·  (a log n / n) recall logarithm fact: a log n = n log a = cn ·  (n log a / n) =  (cn · n log a / n) =  (n log a )

35 l So… A Simple form of the Master Method

36 Using The Master Method l T(n) = 9T(n/3) + n n a=9, b=3, c = 1 n Now 9 > 3 1 n Thus the solution is T(n) =  (n 2 ) l T(n) = 2T(n/2) + n n a=2, b=2, c = 1 n Now 2= 2 1 n Thus the solution is T(n) =  (n log n)

37 Homework Go to my web page and download homework 2. this is a collection of recurrence relations that you will apply the master method and the iteration method to.


Download ppt "CS 2133:Data Structures Merge Sort Solving Recurrences The Master Theorem."

Similar presentations


Ads by Google