a) Consider a recursive function to return the Number of Binary Digits in the Binary Representation of a Positive Decimal Integer (n) using a recursive algorithm. int Process (int n) { if (n == 1) return 1; else return (Extra() + Process (n/4) + Process (n/4)); } Given that Extra(n) is a function of O(n) 1) Find T(n) = number of arithmetic operations. 2) Calculate the complexity of this algorithm using Back Substitution. b) You are given an array A that contains n numbers, and you are also given a target value T. The following algorithm is design for a specific purpose. SortX (A[1...n]) // sort the array A[] into ascending order i = 1; j = n; while (i < j) { if (A[i]+A[j] < T) i++; else if (A[i]+A[j] > T) j--; else // (A[i]+A[j] == T) return true; } return false; 1) Explain the purpose of the above algorithm 2) What is the complexity of such algorithm? Why?
a) Consider a recursive function to return the Number of Binary Digits in the Binary
Representation of a Positive Decimal Integer (n) using a recursive
int Process (int n)
{ if (n == 1) return 1;
else return (Extra() + Process (n/4) + Process (n/4)); }
Given that Extra(n) is a function of O(n)
1) Find T(n) = number of arithmetic operations.
2) Calculate the complexity of this algorithm using Back Substitution.
b) You are given an array A that contains n numbers, and you are also given a target value
T. The following algorithm is design for a specific purpose.
SortX (A[1...n]) // sort the array A[] into ascending order
i = 1;
j = n;
while (i < j) {
if (A[i]+A[j] < T)
i++;
else if (A[i]+A[j] > T)
j--;
else // (A[i]+A[j] == T)
return true;
}
return false;
1) Explain the purpose of the above algorithm
2) What is the complexity of such algorithm? Why?
Trending now
This is a popular solution!
Step by step
Solved in 2 steps with 5 images