Algorytm losowy vs rekurencyjny
Algorytmy randomizowane uwzględniają poczucie losowości w swojej logice, dokonując losowych wyborów podczas wykonywania algorytmu. Z powodu tej losowości zachowanie algorytmu może ulec zmianie nawet dla ustalonego wejścia. W przypadku wielu problemów algorytmy losowe zapewniają najprostsze i najbardziej wydajne rozwiązania. Algorytmy rekurencyjne opierają się na pomyśle, że rozwiązanie problemu można znaleźć, znajdując rozwiązania mniejszych problemów podrzędnych tego samego problemu. Rekursja jest szeroko stosowana do znajdowania rozwiązań problemów w informatyce, a wiele języków programowania wysokiego poziomu obsługuje rekurencję.
Co to jest algorytm randomizowany??
Algorytmy randomizowane uwzględniają poczucie losowości, dokonując losowych wyborów, które kierują wykonywaniem algorytmu. Zazwyczaj wykonuje się to przez przyjęcie zestawu liczb losowych generowanych przez generator liczb pseudolosowych jako dodatkowe dane wejściowe. Z tego powodu zachowanie algorytmu może ulec zmianie nawet dla ustalonego wejścia. Quicksort jest powszechnie znanym algorytmem, który wykorzystuje pojęcie losowości i ma czas działania O (n log n) niezależnie od właściwości wejściowych. Ponadto do budowania konstrukcji takich jak wypukły kadłub w geometrii obliczeniowej stosuje się losową metodę przyrostowej budowy. W tej metodzie punkty wejściowe są losowo permutowane, a następnie wstawiane jeden po drugim do struktury. Implementacja losowego algorytmu jest stosunkowo prosta niż implementacja algorytmu deterministycznego dla tego samego problemu. Największym wyzwaniem przy projektowaniu losowego algorytmu jest przeprowadzenie analizy asymptotycznej pod kątem złożoności czasu i przestrzeni.
Co to jest algorytm rekurencyjny?
Algorytmy rekurencyjne opierają się na pomyśle, że rozwiązanie problemu można znaleźć, znajdując rozwiązania mniejszych problemów podrzędnych tego samego problemu. W algorytmie rekurencyjnym funkcja jest zdefiniowana w odniesieniu do jej wcześniejszej wersji. Ważne jest, aby pamiętać, że to samodzielne odniesienie powinno mieć warunek zakończenia, aby uniknąć odwoływania się na zawsze. Warunek zakończenia jest sprawdzany przed odwołaniem się do niego. Początkowy krok algorytmu rekurencyjnego jest związany z klauzulą podstawową rekurencyjnej definicji problemu. Kroki następujące po etapie początkowym są związane z indukcyjnymi klauzulami problemu. Algorytmy rekurencyjne zapewniają prostsze rozwiązanie w wielu sytuacjach i są bliższe naturalnemu sposobowi myślenia niż algorytm iteracyjny dla tego samego problemu. Ale ogólnie algorytmy rekurencyjne wymagają więcej pamięci i są drogie obliczeniowo.
Jaka jest różnica między algorytmem randomizowanym a rekurencyjnym?
Algorytmy losowe to algorytmy, które wykorzystują poczucie losowości, dokonując losowych wyborów, które mogłyby wpłynąć na wykonanie algorytmu, podczas gdy algorytmy rekurencyjne są algorytmami opartymi na pomyśle, że rozwiązanie problemu można znaleźć przez znalezienie rozwiązania dla mniejszych problemów podrzędnych tego samego problemu. Ze względu na losowość w losowych algorytmach zachowanie algorytmu może ulec zmianie nawet dla tego samego wejścia (w różnych wykonaniach algorytmu). Nie jest to jednak możliwe w algorytmach rekurencyjnych, a zachowanie algorytmu rekurencyjnego byłoby takie samo dla ustalonego wejścia.