Java Recursion

Definicja pojęcia Java Recursion
Framework
Podstawy
String metody

Czym jest Java Recursion – Rekurencja Java


Rekurencja w języku Java to technika, w której metoda wywołuje samą siebie bezpośrednio lub pośrednio. Rekurencja jest używana do rozwiązywania problemów, które można podzielić na mniejsze, łatwiejsze do zarządzania instancje tego samego problemu. Rekurencja jest często używana w algorytmach sortowania i wyszukiwania, a także w problemach obliczeniowych, takich jak obliczanie silni, ciągu Fibonacciego itp.

Podstawy Rekurencji

Aby Rekurencja działała poprawnie, musi spełniać dwa główne warunki:

  • Warunek bazowy: Warunek, który zatrzymuje Rekurencje. Bez warunku bazowego Rekurencja będzie kontynuowana nieskończenie, prowadząc do przekroczenia limitu stosu i błędu StackOverflowError.
  • Krok rekurencyjny: Wywołanie samej siebie przez metodę z różnymi argumentami, zbliżającymi się do warunku bazowego.

Przykład: Obliczanie Silni

Silnia liczby n, oznaczana jako n!, jest to iloczyn wszystkich liczb całkowitych dodatnich od 1 do n. Silnię 0 definiuje się jako 1.

				
					public class Main {
    public static void main(String[] args) {
        int number = 5;
        int result = factorial(number);
        System.out.println("Silnia liczby " + number + " wynosi: " + result);
    }

    public static int factorial(int n) {
        // Warunek bazowy
        if (n == 0) {
            return 1;
        }
        // Krok rekurencyjny
        else {
            return n * factorial(n-1);
        }
    }
}

				
			

Przykład: Ciąg Fibonacciego

Ciąg Fibonacciego to ciąg liczb, w którym każda liczba jest sumą dwóch poprzedzających ją liczb, z wyjątkiem pierwszych dwóch liczb ciągu, które są zdefiniowane jako 0 i 1.

				
					public class Main {
    public static void main(String[] args) {
        int index = 10;
        System.out.println(index + "-ty wyraz ciągu Fibonacciego wynosi: " + fibonacci(index));
    }

    public static int fibonacci(int n) {
        // Warunki bazowe
        if (n <= 1) {
            return n;
        }
        // Krok rekurencyjny
        else {
            return fibonacci(n-1) + fibonacci(n-2);
        }
    }
}
				
			

Rekurencja jest potężnym narzędziem w programowaniu, ale jej nadużywanie może prowadzić do problemów z wydajnością i zużyciem pamięci. Ważne jest, aby zawsze zapewnić warunek bazowy w Rekurencjii , aby uniknąć nieskończonej Rekurencjii błędów StackOverflowError. Ponadto, w niektórych przypadkach iteracja (np. pętle) może być bardziej efektywnym rozwiązaniem niż Rekurencja.

zł30

Pytania rekrutacyjne JavaScript

zł25

Pytania rekrutacyjne SQL

zł30

Pytania rekrutacyjne Spring Framework 

« » page 1 / 2
Scroll to Top