Недавно я изучал книгу «Абстракция данных и решение проблем с помощью C++», однако в какой-то момент я застрял.
Я нахожусь в главе о рекурсии и столкнулся с проблемой «Поиск наибольшего значения в массиве». Как вы знаете, я должен решить эту проблему с точки зрения рекурсии, и на самом деле я уже решил это с помощью этого алгоритма;
Что в основном начинается с первого элемента до последнего элемента массива, и алгоритм сравнивает каждое значение друг с другом, а самый большой элемент массива стоит отдельно в массиве (который вызывает базовый случай)
int largestValue(int anArray[], int first , int last){
int value;
// base case
if(first == last){
value = anArray[first];
}
else if(anArray[first]>anArray[first+1]){
anArray[first + 1] = anArray[first];
value = largestValue(anArray, first + 1, last);
}else{ // anArray[first] < anArray[first + 1]
value = largestValue(anArray, first + 1, last);
}
return value;
НО, после того, как я прочитал описание проблемы, было сказано, что "вы должны решить эту проблему с помощью многопутевой рекурсии". Для лучшего понимания привожу скриншот проблемы:
И я не мог понять алгоритм с точки зрения «многопутевой рекурсии».
largestValue
для каждой половины. - person Evg   schedule 26.07.2020[SOLVED]
в заголовке. Выберите ответ и примите его, пожалуйста. - person Waqar   schedule 26.07.2020