Question & Answer: 5. Determine the Big-O of this algorithm. Explain your answer…..

5. Determine the Big-O of this algorithm. Explain your answer

Algorithm(A, r)
1    if (r.isLeaf )
2    for i=0 to r.head
3    output A[i]
4    for j = 0 to r.size()
5 if (A[j] != NULL)
6    Algorithm(A, A[j])

Expert Answer

 

We calculate the Big O classificaton of given function as follows;

Algorithm (A,r)

->if(r.isLeaf)

->for i = 0 to r.head

output A[i]

->for j = 0 to r.size( )

if (A [ j ] != NULL )

Algorithm (A , A[ j ] )

Step 1: Identify the Formula

1. We are Comapring r is leaf or not so the compexity is O( N ) beacause it runs n times

2. There are two for Loops in the algorithm so the complexity of both is 2N beacause Big O complexity of one loop is N as it runs n times.

3. Again for the if Statement the Complexity is O( N ) and the recursive function Algorithm ( A, A [ j ] ) called many times as if Statement so the complexity is O ( N )

Now the Total Complexity is : N + 2N + N + N = 5N

Step 2: remove Everything Except the higher terms:

There is Only single term in notation so we can’t eliminate any term.

So the Complexity is Still 5N

Step 3: Remove all the Constants:

Remove the constant 5 and remaining part is final comlexity i.e. N

Big-O for given algorithm is O ( n ) .

Still stressed from student homework?
Get quality assistance from academic writers!