Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

2.1 Complexity analysis: Represent the time complexity of the following recursiv

ID: 3825060 • Letter: 2

Question

2.1 Complexity analysis: Represent the time complexity of the following recursive algorithm, T(n), as a recurrence equation:


    int pow_2( int n ){
      if ( n==1)
               return 2;
     if ( n > 1)
               return ( 2 * pow_2( n-1 ) );
    }  

2.2 Complexity analysis: analyze the time complexity of the Top-Down implementation of the MergeSort algorithm on the following wikipedia webpage:
            http://en.wikipedia.org/wiki/Merge_sort

For

assume (iEnd - iBegin + 1) is n (that's the size of A), this algorithm will take c1.n + c0 to finish. Please represent the time complexity of TopDownSplitMerge(A[], iBegin, iEnd, B[]) as a recurrence equation. You don't need to solve this equation.

Explanation / Answer

Hi, Please find my answer.

Please let me knwo in case of any issue.


2.1) Complexity analysis: Represent the time complexity of the following recursive algorithm, T(n), as a recurrence equation:

int pow_2( int n ){
if ( n==1)
return 2;
if ( n > 1)
return ( 2 * pow_2( n-1 ) );
}

Here Recursive relation:

T(n) = T(n-1) + C (constant)

So, T(n) = O(n)

2.2)

TopDownMerge(A[], iBegin, iMiddle, iEnd, B[])

   T(n) = O(n + m) : Mergint of two sorted array

   m+n = sum of elements of A and B

TopDownSplitMerge(A[], iBegin, iEnd, B[])

    T(n) = 2T(n/2) + O(n)

        O(n) = to merger sorted array

    So, Solving using Master theorem:
        T(n) = O(nlogn)