Μια αναδρομική συνάρτηση μπορεί να χρησιμοποιηθεί όταν πρέπει να γίνει κατ 'επανάληψη σε ένα σύνολο δεδομένων μια λειτουργία . Για παράδειγμα , μια αναδρομική συνάρτηση μπορεί να εκτελέσει επανειλημμένα μια μαθηματική πράξη σε μια αριθμητική τιμή , έως ότου συνάντησε μια κατάσταση .
Εικόνων Δημιουργία Αναδρομική Λειτουργία
Η
Κάθε λειτουργία που καλεί τον εαυτό της είναι μια αναδρομική συνάρτηση . Δεν υπάρχουν ειδικές απαιτήσεις για μια λειτουργία που αυτοαποκαλείται ? Μπορεί να το κάνει , όπως cait θα καλέσει κάποια άλλη λειτουργία . Ως παράδειγμα , η ακόλουθη είναι μια αναδρομική συνάρτηση για να υπολογίσει τον επόμενο αριθμό στην ακολουθία Fibonacci :
καιρό fib (long n )
{
if ( n <= 2 )
{
επιστροφή 1?
}
άλλο
{
fib επιστροφής ( n - 1 ) + fib ( n - 2 ) ?
} }
Η Προβλήματα με Αναδρομή
Η
Αναδρομή έχει πολλά πιθανά προβλήματα που θα πρέπει να εξετάζονται πριν από γράφουμε μια αναδρομική συνάρτηση . Αναδρομικές συναρτήσεις μπορεί να είναι πολύ αναποτελεσματική , όχι μόνο είναι γενικά στοίβα από επανειλημμένες παραινέσεις τη λειτουργία εκεί, αναδρομικές συναρτήσεις μπορούν εύκολα να καταλήξετε με εκθετική χρόνους λειτουργίας ανάλογα με το πώς είναι γραμμένο . Αναδρομικές συναρτήσεις τρέχουν επίσης κίνδυνο να προκαλέσουν υπερχείλιση στοίβας , αν ο αριθμός των αναδρομικών κλήσεων είναι πολύ υψηλή .
Εικόνων Αναδρομή Vs . Επανάληψη
Η
περισσότερες αναδρομικές συναρτήσεις μπορεί να υλοποιηθεί ως μια μη αναδρομική συνάρτηση που χρησιμοποιεί μια επαναληπτική βρόχο . Αυτό τείνει να είναι πιο αποτελεσματική και πιο ασφαλή , αλλά σε ορισμένες περιπτώσεις μπορεί να είναι πιο δύσκολο να γράψει και να διαβάσει .
Αναδρομικές συναρτήσεις είναι πιο συχνά χρησιμοποιούνται κατά την πλοήγηση μιας δέντρο-όπως δομή , ή όταν χρησιμοποιείτε επανάληψη θα κάνει το λειτουργούν πολύ πιο περίπλοκη . Στις περισσότερες άλλες περιπτώσεις , οι επαναλήψεις θα πρέπει να χρησιμοποιείται αντ 'αυτού.
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα