Intern
Τι είναι η αναδρομή;
sobes.tech AI
Απάντηση από AI
Λειτουργία που καλεί τον εαυτό της.
Εφαρμόζεται για την επίλυση προβλημάτων που μπορούν να χωριστούν σε υποπροβλήματα με την ίδια δομή με το αρχικό πρόβλημα. Πρέπει να υπάρχει μια συνθήκη εξόδου (βασική περίπτωση) για να αποφευχθεί ένας άπειρος βρόχος.
Παράδειγμα υπολογισμού του παραγοντικού:
<?php
function factorial(int $n): int
{
// Βασική περίπτωση
if ($n <= 1) {
return 1;
}
// Αναδρομική κλήση
return $n * factorial($n - 1);
}
echo factorial(5); // Θα εμφανίσει 120
?>
Πλεονεκτήματα:
- Κομψότητα και συνοπτικότητα του κώδικα για ορισμένα προβλήματα.
Μειονεκτήματα:
- Μπορεί να οδηγήσει σε υπερχείλιση στοίβας με πολύ βαθιά επίπεδα αναδρομής.
- Πιθανώς λιγότερο αποδοτική από επαναληπτικές λύσεις για τα ίδια προβλήματα λόγω των πρόσθετων εξόδων των κλήσεων συναρτήσεων.
Χρησιμοποιείται συχνά για την περιήγηση σε δέντρα, συστήματα αρχείων, επίλυση συνδυαστικών προβλημάτων.