Źródło: Arkusze CKE
Który z podanych algorytmów można zrealizować zarówno w sposób iteracyjny, jak i rekurencyjny?
Warianty odpowiedzi
-
A
Algorytm wyszukiwania binarnego
-
B
Algorytm generowania liczb losowych
-
C
Algorytm mapowania kluczy w tablicach asocjacyjnych
-
D
Algorytm sortowania bąbelkowego
Wyjaśnienie
Wyszukiwanie binarne możesz łatwo napisać na dwa sposoby i oba są w pełni poprawne programistycznie.
W wersji iteracyjnej używasz pętli while i przesuwasz w niej wskaźniki początku oraz końca przeszukiwanego zakresu.
W wersji rekurencyjnej wywołujesz tę samą funkcję ze zmniejszonym zakresem danych aż do znalezienia elementu.
Wybór zależy od konwencji w projekcie, ale sama logika podziału zakresu na pół idealnie pasuje do obu tych podejść.