Junior
Τι είναι η αναδρομική συμπεριφορά;
sobes.tech AI
Απάντηση από AI
Εκτέλεση κώδικα ή συναρτήσεων που καλούν τον εαυτό τους.
Βασικά στοιχεία:
- Βασική περίπτωση: Η συνθήκη στην οποία σταματά η αναδρομή. Χωρίς αυτή, η αναδρομή θα ήταν άπειρη.
- Αναδρομική περίπτωση: Το μέρος της συνάρτησης όπου καλεί τον εαυτό της, συνήθως με τροποποιημένο όρισμα.
Παράδειγμα (υπολογισμός παραγοντικού):
func factorial(_ n: Int) -> Int {
// Βασική περίπτωση
if n <= 1 {
return 1
}
// Αναδρομική περίπτωση
return n * factorial(n - 1)
}
// Παράδειγμα κλήσης
let result = factorial(5) // 120
Πλεονεκτήματα:
- Κομψή λύση για προβλήματα με αυτο-παρόμοια δομή (π.χ. διάσχιση δέντρων).
- Πιο ευανάγνωστος κώδικας σε ορισμένες περιπτώσεις.
Μειονεκτήματα:
- Μπορεί να καταναλώνει πολύ μνήμη (στοίβα κλήσεων).
- Υπάρχει κίνδυνος υπερχείλισης στοίβας σε πολύ βαθιές αναδρομές.
- Μερικές φορές λιγότερο αποδοτικό από επαναληπτικές λύσεις.