Sobes.tech
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

Πλεονεκτήματα:

  • Κομψή λύση για προβλήματα με αυτο-παρόμοια δομή (π.χ. διάσχιση δέντρων).
  • Πιο ευανάγνωστος κώδικας σε ορισμένες περιπτώσεις.

Μειονεκτήματα:

  • Μπορεί να καταναλώνει πολύ μνήμη (στοίβα κλήσεων).
  • Υπάρχει κίνδυνος υπερχείλισης στοίβας σε πολύ βαθιές αναδρομές.
  • Μερικές φορές λιγότερο αποδοτικό από επαναληπτικές λύσεις.