INF.03Programowanie
Rekurencja w programowaniu
Technika programistyczna, w której funkcja wywołuje samą siebie w celu rozwiązania mniejszego podproblemu aż do osiągnięcia warunku bazowego (stopu).
Jak działa rekurencja?
Funkcja rekurencyjna to taka, która w swoim ciele zawiera wywołanie samej siebie. Aby rekurencja nie spowodowała przepełnienia stosu wywołań (Stack Overflow), bezwzględnie musi posiadać warunek stopu (warunek bazowy).
JAVASCRIPT
// Przykład obliczania silni (n!):
function silnia(n) {
// 1. Warunek stopu (baza rekurencji):
if (n <= 1) return 1;
// 2. Krok rekurencyjny:
return n * silnia(n - 1);
}
console.log(silnia(5)); // Wynik: 120Zalety i wady rekurencji:
- Zalety: Zwięzły i czytelny kod dla problemów o strukturze rekurencyjnej (np. przeglądanie drzewa DOM, przeszukiwanie katalogów, algorytmy dziel i zwyciężaj).
- Wady: Zużywa pamięć na stosie dla każdej ramki wywołania; w przypadku braku warunku stopu zawiesza aplikację.
Najczęstsze pułapki na egzaminie INF.03:
- Zadania egzaminacyjne często proszą o podanie wyniku działania krótkiej funkcji rekurencyjnej dla podanego argumentu wejściowego (np. potęgowanie, ciąg Fibonacciego, NWD).
Chcesz sprawdzić to pojęcie w praktyce?
Przeszukaj pytania z oficjalnych arkuszy CKE powiązane z hasłem Rekurencja w programowaniu lub rozpocznij trening.