Я не начинал понимать линейную рекурсию, а затем я думал, что занимаюсь сортировкой алгоритмов, а затем быстро сортировать, где у меня были проблемы с рекурсией. Поэтому я решил работать с более простой, например, двоичной суммой, которую я нашел в Интернете. Я понимаю, что рекурсия, как и все вызовы функций, выполняется один раз - время и не в одно и то же время (это то, что делает многопоточность, но не относится к моей проблеме при трассировке). Поэтому мне нужно выполнить весь рекурсивный вызов A ПЕРЕД рекурсивным вызовом B, но я теряюсь в миксе. Кто-нибудь думает об этом. Например, Я использовал размер, n = 9, где elems - все, чтобы сохранить его простым.Суммирование элементов массива с использованием двоичной рекурсии
/**
* Sums an integer array using binary recursion.
* @param arr, an integer array
* @param i starting index
* @param n size of the array
* floor(x) is largest integer <= x
* ceil(x) is smallest integer >= x
*/
public int binarySum(int arr[], int i, int n) {
if (n == 1)
return arr[i];
return binarySum(arr, i, ceil(n/2)) + binarySum(arr,i + ceil(n/2), floor(n/2));
}
Я попытался проследить как на этом сайте с помощью Фибоначчи, например но для меня это становится кошмаром. см. http://cis.stvincent.edu/html/tutorials/swd/recur/recur.html. Я был бы признателен всем за помощь. – user784423