Я делаю несколько упражнений, чтобы получить рекурсивные вещи. Один из них - я пытаюсь переписать линейный поиск с рекурсией. Вот оно:Линейный алгоритм поиска с рекурсивным вызовом?
int linearSearch(int a[], int n, int key)
{
if (n < 0)
{
return -1;
}
if(key == a[n-1])
{
return n - 1;
}
linearSearch(a, n-1, key); // Line 1
}
код не был выполнен правильно, если он не имеет return
заявление. Я не понимаю, почему нам нужно поставить оператор return
в строке 1? Нужно ли нам в этом случае рекурсивно вызывать рекурсию только для уменьшения n на 1?
Поскольку это рекурсия это верно для всех п в конце концов ... Изменение является обязательным, даже если п> 0 , – smichak