Źródło: Arkusze CKE
W jakich sytuacjach zastosowanie rekurencji może być bardziej korzystne niż użycie iteracji?
Warianty odpowiedzi
-
A
Kiedy program jest uruchamiany w środowisku wielowątkowym
-
B
Gdy kod źródłowy ma być zoptymalizowany dla starszych kompilatorów
-
C
Gdy algorytm wymaga naturalnego podziału na mniejsze podproblemy
-
D
Kiedy liczba iteracji przewyższa maksymalny zakres zmiennej licznikowej
Wyjaśnienie
Rekurencja świetnie sprawdza się tam, gdzie problem sam z siebie składa się z mniejszych problemów tego samego typu.
Klasycznym przykładem jest przechodzenie po strukturach drzewiastych, katalogach na dysku czy algorytmy sortowania typu dziel i zwyciężaj.
Napisanie takich algorytmów za pomocą zwykłych pętli wymagałoby skomplikowanej logiki i ręcznego zarządzania pamięcią. Kod rekurencyjny w tych sytuacjach jest o wiele czystszy, krótszy i bardziej naturalny do zrozumienia.