Identify-Function

Question 1

Consider the following C-function in which a[n] and b[m] are two sorted integer arrays and c[n + m] be another integer array.

void xyz(int a[], int b [], int c[])
{
  int i, j, k;
  i = j = k = O;
  while ((i < n) && (j < m))
     if (a[i] < b[j]) c[k++] = a[i++];
     else c[k++] = b[j++];
}

Which of the following condition(s) hold(s) after the termination of the while loop?

(i) j < m, k = n+j-1, and a[n-1] < b[j] if i = n 
(ii) i < n, k = m+i-1, and b[m-1] ≤ a[i] if j = m 
A
only (i)
B
only (ii)
C
either (i) or (ii) but not both
D
neither (i) nor (ii)
Question 1 Explanation: 
The while loop adds element from 'a' and 'b' to 'c' and terminates when either of them exhausts. So, when loop terminates either i=n or j=m.
Suppose i=n. This would mean all elements from array 'a' are added to 'c' and k must be incremented by n. 'c' would also contain j elements from array 'b'.
So, number of elements in 'c' would be n+j and hence k=n+j.
Similarly, when j=m, k=m+i.
Hence, option (D) is correct.
There is 1 question to complete.

Access quiz wise question and answers by becoming as a solutions adda PRO SUBSCRIBER with Ad-Free content

Register Now

If you have registered and made your payment please contact solutionsadda.in@gmail.com to get access