Рубрики

C | Массивы | Вопрос 5

Рассмотрим следующую C-функцию, в которой a [n] и b [m] — это два отсортированных целочисленных массива, а c [n + m] — еще один целочисленный массив.

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++];

}

Какие из следующих условий выполняются после завершения цикла while? (GATE CS 2006)
(i) j <m, k = n + j-1 и a [n-1] <b [j], если i = n
(ii) i <n, k = m + i-1 и b [m-1] <= a [i], если j = m
(A) только (I)
(B) только (II)
(C) либо (I) или (II), но не оба
(D) ни (i), ни (ii)

Ответ: (с)
Объяснение: Функция xyz () аналогична merge () функции mergeSort ().

Условие (i) истинно, если последний вставленный элемент в c [] от a [], а условие (ii) истинно, если последний вставленный элемент от b [].
Тест на этот вопрос

Рекомендуемые посты:

C | Массивы | Вопрос 5

0.00 (0%) 0 votes