Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Υπολογιστών Γλώσσες

Χρήσεις για ένα Αναδρομική Λειτουργία

Αναδρομή μπορεί να είναι μια χρήσιμη τεχνική για τους προγραμματιστές . Αναδρομικές συναρτήσεις , μερικές φορές γνωστή ως " μέθοδοι " σε γλώσσες όπως η Java , είναι λειτουργίες που αυτοαποκαλούνται . Υπάρχουν ορισμένες καταστάσεις στις οποίες αναδρομικές συναρτήσεις είναι ιδιαίτερα κατάλληλα . Ωστόσο , μπορεί να είναι δύσκολο να εφαρμοστεί ορθά μια αναδρομική συνάρτηση , οπότε θα πρέπει να χρησιμοποιούνται μόνο εφόσον συντρέχει λόγος . Αναδρομικές συναρτήσεις είναι συχνά χρήσιμο όταν ασχολείται με τις δομές δεδομένων και μαθηματικές δραστηριότητες . Ταξινόμηση
Η

Όταν τα δεδομένα πρότυπων προγραμμάτων , είτε εσωτερικά είτε εισάγονται από μια πηγή , όπως μια βάση δεδομένων , που συχνά χρειάζεται για να το λύσουμε . Ορισμένες δομές δεδομένων δεν διέταξε , πράγμα που σημαίνει ότι τα στοιχεία δεν είναι τοποθετημένα σε διαδοχική σειρά . Για παράδειγμα , ένα πρόγραμμα θα μπορούσε να περιέχει έναν πίνακα με συμβολοσειρές κειμένου μέσα σε αυτό . Για να ταξινομήσετε τον πίνακα , έτσι ώστε οι χορδές κείμενο είναι διατεταγμένα σε αύξουσα σειρά με αλφαβητική σειρά, το πρόγραμμα μπορεί να χρειαστεί να χρησιμοποιήσετε έναν αλγόριθμο . Συγχώνευση sort είναι ένα παράδειγμα μιας επαναληπτικής μεθόδου για τη διαδικασία αυτή . Λειτουργεί Συγχώνευση είδος διαιρώντας συνεχώς τον πίνακα σε δύο , κάθε μισό διαλογή πριν από τη συγχώνευσή τους πίσω σε ένα.
Εικόνων Αναζήτηση
Η

Όταν τα δεδομένα κατάστημα προγραμμάτων στις δομές δεδομένων , συχνά πρέπει να εντοπίσετε συγκεκριμένα στοιχεία χρησιμοποιώντας αλγόριθμους αναζήτησης , τα οποία μπορούν να επωφεληθούν από την αναδρομή . Για παράδειγμα, αν ένας πίνακας αποθηκεύει τις τιμές σε αλφαβητική σειρά , το πρόγραμμα μπορεί να χρησιμοποιήσει αναδρομή για να καταλάβουμε ποια είναι η θέση ένα συγκεκριμένο στοιχείο είναι . Δυαδική αναζήτηση περιλαμβάνει το πρόγραμμα συνεχώς τον έλεγχο ενός στοιχείου στη μέση του πίνακα. Εάν το στοιχείο ταιριάζει με το ένα , το πρόγραμμα αναζητά , μπορεί να σταματήσει . Αν δεν είναι το εν λόγω στοιχείο , ο αλγόριθμος μπορεί να ελέγξει αν είναι μεγαλύτερο ή μικρότερο από το στοιχείο αναζήτησης. Αν είναι μεγαλύτερη , ο αλγόριθμος μπορεί να εξαλείψει το άνω μισό της δομής πέραν του τρέχοντος στοιχείου , όπως το στοιχείο αναζήτησης πρέπει να είναι στο κάτω μισό . Αυτή η διαδικασία συνεχίζεται έως ότου βρίσκεται το στοιχείο .

Η Δομές Δεδομένων
Η

Κατά τη λήψη απόφασης σχετικά με αλγόριθμους , οι προγραμματιστές πρέπει να αναρωτηθούμε αν μια επαναληπτική συνάρτηση που δεν έχει επαναληπτικό θα μπορούσε να λύσει το έργο , καθώς και ένα αναδρομικό ένα. Για παράδειγμα, σε ορισμένες δομές δεδομένων , ένα πρόγραμμα θα πρέπει να ψάξει μέσω γραμμικά μέχρι να εντοπίζει ένα στοιχείο αναζήτησης. Σε αυτή την περίπτωση δεν υπάρχει εναλλακτική λύση , αλλά να επαναλάβει μέσω της δομής . Αναδρομικοί αλγόριθμοι απλοποιήσει το έργο με κάθε επανάληψη , έλεγχο για να δούμε αν το τελικό σημείο έχει φτάσει , στη συνέχεια, καλώντας τη λειτουργία και πάλι , αν δεν έχει . Για να αποδείξει τις ομοιότητες μεταξύ αναδρομή και επανάληψης, η ακόλουθη μέθοδος Java δείγμα παρουσιάζει μια επαναληπτική μέθοδο περίγραμμα : public void processNumber ( int myNum ) { εάν ( myNum > 100 ) επιστροφή? Άλλο processNumber ( myNum * 5 ) ? }

Μια εναλλακτική επαναληπτική εφαρμογή αυτού θα ήταν ως εξής : int Anum = 3 ? ενώ ( Anum <100 ) { ANUM * = 5 ? }

Στην περίπτωση αυτή, η επαναληπτική έκδοση είναι απλούστερη


μαθηματική εργασίες
Η

Μερικές μαθηματικές εργασίες επεξεργασίας είναι ιδιαίτερα κατάλληλο για αναδρομικές συναρτήσεις . Ακολουθίες Fibonacci αποδεικνύουν αναδρομική επεξεργασία . Κάθε αριθμός σε μία ακολουθία Fibonacci είναι το άθροισμα των δύο προηγουμένων . Το ακόλουθο δείγμα κώδικα Java καταδεικνύει μια λειτουργία για να βρείτε έναν αριθμό Fibonacci : public int getFibonacci ( int fNum ) {if ( fNum <= 1 ) επιστρέφουν fNum ? Άλλο επιστρέψει getFibonacci ( fNum - 1 ) + getFibonacci ( fNum - 2 ) ? }

η μέθοδος επιστρέφει τον αριθμό στην ακολουθία Fibonacci στη θέση που υποδεικνύεται από την παράμετρο ακέραιο όταν ο κώδικας καλεί , ως εξής : getFibonacci ( 8 ) ?

Αυτό θα επιστρέψει την όγδοη αριθμό . ( Βλ. παραπομπές 3 , 4 , 5 )
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα