Рубрики

Практические вопросы для рекурсии | Комплект 1

Объясните функциональность следующих функций.

Вопрос 1

int fun1(int x, int y) 

{

  if(x == 0)

    return y;

  else

    return fun1(x - 1,  x + y);

}

Ответ: Функция fun () вычисляет и возвращает ((1 + 2… + x-1 + x) + y), что равно x (x + 1) / 2 + y. Например, если x равен 5, а y равен 2, тогда fun должен вернуть 15 + 2 = 17.

вопрос 2

void fun2(int arr[], int start_index, int end_index)

{

  if(start_index >= end_index)   

     return;

  int min_index; 

  int temp; 

  

  / * Предположим, что minIndex () возвращает индекс минимального значения в

    массив arr [start_index ... end_index] * /

  min_index = minIndex(arr, start_index, end_index);

  

  temp = arr[start_index];

  arr[start_index] = arr[min_index];

  arr[min_index] = temp;        

  

  fun2(arr, start_index + 1, end_index);

}     

Ответ: функция fun2 () представляет собой рекурсивную реализацию Selection Sort .

Пожалуйста, пишите комментарии, если вы обнаружите, что какие-либо ответы / коды неверны, или вы хотите поделиться дополнительной информацией по темам, обсужденным выше.

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

Практические вопросы для рекурсии | Комплект 1

0.00 (0%) 0 votes