Java Recursion: Αναδρομικές μέθοδοι (με παραδείγματα)

Σε αυτό το σεμινάριο, θα μάθετε για την αναδρομική λειτουργία Java, τα πλεονεκτήματα και τα μειονεκτήματά της.

Στην Java, μια μέθοδος που ονομάζεται γνωστή ως αναδρομική μέθοδος. Και, αυτή η διαδικασία είναι γνωστή ως επανάληψη.

Ένα παράδειγμα φυσικού κόσμου θα ήταν να τοποθετηθούν δύο παράλληλοι καθρέπτες το ένα απέναντι στο άλλο. Οποιοδήποτε αντικείμενο μεταξύ τους θα ανακλάται αναδρομικά.

Πώς λειτουργεί η αναδρομή;

Εργασία της Java Recursion

Στο παραπάνω παράδειγμα, καλέσαμε τη recurse()μέθοδο από μέσα στη mainμέθοδο. (κανονική κλήση μεθόδου). Και, μέσα στη μέθοδο recurse (), καλούμε και πάλι την ίδια μέθοδο recurse. Αυτή είναι μια αναδρομική κλήση.

Για να σταματήσουμε την αναδρομική κλήση, πρέπει να παρέχουμε κάποιους όρους μέσα στη μέθοδο. Διαφορετικά, η μέθοδος θα καλείται απεριόριστα.

Ως εκ τούτου, χρησιμοποιούμε τη δήλωση if… else (ή παρόμοια προσέγγιση) για να τερματίσουμε την αναδρομική κλήση μέσα στη μέθοδο.

Παράδειγμα: Παράγοντα ενός αριθμού που χρησιμοποιεί αναδρομή

 class Factorial ( static int factorial( int n ) ( if (n != 0) // termination condition return n * factorial(n-1); // recursive call else return 1; ) public static void main(String() args) ( int number = 4, result; result = factorial(number); System.out.println(number + " factorial = " + result); ) )

Έξοδος :

 4 παραγοντικό = 24

Στο παραπάνω παράδειγμα, έχουμε μια μέθοδο που ονομάζεται factorial(). Το factorial()καλείται από τη main()μέθοδο. με τη μεταβλητή αριθμού πέρασε ως όρισμα.

Εδώ, παρατηρήστε τη δήλωση,

 return n * factorial(n-1);

Η factorial()μέθοδος καλείται. Αρχικά, η τιμή του n είναι 4 μέσα factorial(). Κατά την επόμενη αναδρομική κλήση, το 3 μεταφέρεται στη factorial()μέθοδο. Αυτή η διαδικασία συνεχίζεται έως ότου το n είναι ίσο με 0.

Όταν το n είναι ίσο με 0, η ifδήλωση επιστρέφει ψευδής και ως εκ τούτου επιστρέφεται 1. Τέλος, το συσσωρευμένο αποτέλεσμα μεταφέρεται στη main()μέθοδο.

Εργασία του Factorial Program

Η παρακάτω εικόνα θα σας δώσει μια καλύτερη ιδέα για το πώς εκτελείται το παραγοντικό πρόγραμμα χρησιμοποιώντας αναδρομή.

Factorial Program χρησιμοποιώντας το Recursion

Πλεονεκτήματα και μειονεκτήματα της επανάληψης

Όταν πραγματοποιείται μια αναδρομική κλήση, εκχωρούνται στη στοίβα νέες θέσεις αποθήκευσης για μεταβλητές. Καθώς, κάθε αναδρομική κλήση επιστρέφει, οι παλιές μεταβλητές και οι παράμετροι αφαιρούνται από τη στοίβα. Ως εκ τούτου, η αναδρομή χρησιμοποιεί γενικά περισσότερη μνήμη και είναι γενικά αργή.

Από την άλλη πλευρά, μια αναδρομική λύση είναι πολύ πιο απλή και χρειάζεται λιγότερο χρόνο για να γράψετε, να διορθώσετε και να διατηρήσετε.

Συνιστώμενη ανάγνωση: Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα της αναδρομής;

ενδιαφέροντα άρθρα...