Logo pl.boatexistence.com

Czy funkcje rekurencyjne są szybsze niż iteracja?

Spisu treści:

Czy funkcje rekurencyjne są szybsze niż iteracja?
Czy funkcje rekurencyjne są szybsze niż iteracja?

Wideo: Czy funkcje rekurencyjne są szybsze niż iteracja?

Wideo: Czy funkcje rekurencyjne są szybsze niż iteracja?
Wideo: Comparing Iterative and Recursive Factorial Functions 2024, Może
Anonim

Funkcja rekurencyjna działa znacznie szybciej niż funkcja iteracyjna Powodem jest to, że w tym ostatnim, dla każdego elementu potrzebne jest WYWOŁANIE do funkcji st_push, a następnie kolejne do st_pop. W pierwszym przypadku masz tylko rekurencyjne WYWOŁANIE dla każdego węzła. Ponadto dostęp do zmiennych w stosie wywołań jest niezwykle szybki.

Czy rekursja czy iteracja jest szybsza?

Zapamiętywanie sprawia, że rekursja jest przyjemna, ale wydaje się, że iteracja jest zawsze szybsza Chociaż metody rekurencyjne działają wolniej, czasami używają mniej linii kodu niż iteracja i dla wielu są łatwiejsze do zrozumienia. Metody rekurencyjne są również przydatne w przypadku niektórych określonych zadań, takich jak przechodzenie przez struktury drzewiaste.

Czy rozwiązania iteracyjne są szybsze niż rozwiązania rekurencyjne?

Jednak rozwiązania iteracyjne są zazwyczaj szybsze niż rozwiązania rekurencyjne, jeśli chodzi o szybkość. … W standardowym języku programowania, w którym kompilator nie ma optymalizacji rekurencyjnej z ogonem, wywołania rekurencyjne są zwykle wolniejsze niż iteracja.

Czy rekurencja jest łatwiejsza niż iteracja?

Faktem jest, że rekurencja rzadko jest najskuteczniejszym podejściem do rozwiązania problemu, a iteracja jest prawie zawsze bardziej wydajna Dzieje się tak, ponieważ zwykle wiąże się z większym narzutem na tworzenie rekurencji wywołań ze względu na to, że stos wywołań jest tak intensywnie używany podczas rekurencji.

Jakie są wady rekurencji?

Wady rekurencji

  • Funkcje rekurencyjne są generalnie wolniejsze niż funkcje nierekurencyjne.
  • Może wymagać dużo miejsca w pamięci do przechowywania wyników pośrednich na stosach systemowych.
  • Trudny do przeanalizowania lub zrozumienia kodu.
  • Nie jest bardziej wydajny pod względem złożoności czasowej i przestrzennej.

Zalecana: