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

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

Turbo C Διαλογής Μέθοδοι

Array ταξινόμησης των δεδομένων είναι ένα από τα κλασικά προβλήματα της επιστήμης των υπολογιστών , και γι 'αυτό πρέπει να έρχονται ως έκπληξη το γεγονός ότι μια μεγάλη ποικιλία μεθόδων για τη διαλογή στην Turbo C και άλλες γλώσσες έχουν συλληφθεί . Κυμαίνονται από αναποτελεσματική , αλλά απλό στην εφαρμογή μεθόδων για την πολύ πιο γρήγορα , αλλά πιο πολύπλοκες μεθόδους . Ο καλύτερος αλγόριθμος για μια κατάσταση εξαρτάται από το αναμενόμενο μέγεθος των δεδομένων που πρέπει να ταξινομούνται και τη σημασία της αποδοτικότητας . Bubble Sort
Η

Η φούσκα Ταξινόμηση είναι η πιο απλή και πιο αργή , αλγόριθμος ταξινόμησης . Απλά προχωρά διαμέσου της συστοιχίας , συγκρίνοντας το τρέχον στοιχείο με το στοιχείο , ακριβώς μπροστά από αυτό. Αν αυτά τα δύο στοιχεία είναι εκτός λειτουργίας , αλλάζουν θέσεις . Όταν η φούσκα Ταξινόμηση φτάσει στο τέλος , ελέγχει για να δούμε αν κάτι αλλάξει θέσεις . Αν το έκανε , θα ξεκινά πάλι από την αρχή . Συνεχίζει looping μέσω του πίνακα μέχρι να καταφέρει να ολοκληρώσει μια πλήρη περάσει χωρίς να κάνει καμία εναλλαγή . Κατά μέσο όρο , αυτό παίρνει O (n ²) χρόνο, αλλά εάν τα δεδομένα είναι γνωστό ότι είναι πολύ σχεδόν ταξινομημένο , ίσως με ένα μόνο στοιχείο από τη θέση , μπορεί να λειτουργήσει σε O ( n). Έτσι, μια καλή μέθοδος για μικρές σειρές που δεν ταξινομούνται συχνά ή μεγαλύτερες σειρές που είναι γνωστό ότι είναι ήδη ταξινομημένο ( ή σχεδόν έτσι ) το μεγαλύτερο μέρος του χρόνου .
Εικόνων Ταξινόμηση Επιλογής

το είδος επιλογής είναι ελαφρώς πιο εκλεπτυσμένο από το Bubble Sort . Ο αλγόριθμος προχωρά σε όλο το φάσμα των δεδομένων για να βρείτε το μικρότερο στοιχείο . Όπου αυτό το στοιχείο είναι, ότι έχει τη θέση του ανταλλαχθούν με το πρώτο στοιχείο , και ένας μετρητής διαπιστώνει ότι το πρώτο στοιχείο του πίνακα είναι γνωστό να είναι σωστά ταξινομημένο . Στη συνέχεια προχωρά διαμέσου ολόκληρης της συστοιχίας και πάλι, εκτός από το πρώτο στοιχείο (το οποίο είναι γνωστό ότι είναι στη σωστή θέση . ) Όταν βρίσκει το χαμηλότερο στοιχείο, κινείται προς τη δεύτερη θέση και αυξάνει το μετρητή για να υποδείξει ότι τα δύο πρώτα στοιχεία είναι γνωστά προς ταξινόμηση . Συνολικά , η εξεταστική Ταξινόμηση λειτουργεί σε O ( n ² ) χρόνο , αλλά έχει ένα πλεονέκτημα : το πολύ , μόνο n-1 αλλαγές ποτέ από το μυαλό του πίνακα, δεδομένου ότι κάθε στοιχείο να μετακινηθούν μόνον όταν η θέση του είναι γνωστή . Αυτό το καθιστά μια καλή αλγόριθμος σε κάποιες εξωτικές καταστάσεις όπου εγγραφή δεδομένων στη μνήμη παίρνει δραστικά περισσότερο από την ανάγνωση .

Η Quicksort
Η

Όπως υποδηλώνει το όνομα , η QuickSort είναι γρήγορη . Κατά μέσο όρο , μπορεί να εκτελέσει ένα είδος σε O ( n log n) χρόνο . Αλλά είναι πολύ πιο περίπλοκη από ό, τι πολλά άλλα προγράμματα και απαιτεί ότι ο κύριος του έργου ξέρετε λίγο για τα δεδομένα του πίνακα πριν από το χέρι . Κατ 'αρχάς , ένα "τιμή αναφοράς" πρέπει να επιλεγεί . Αυτή είναι η τιμή που ο προγραμματιστής πιστεύει ότι είναι κοντά στη διάμεση τιμή των όλων των τιμών στη συστοιχία. Όσο καλύτερη είναι η τιμή περιστροφής , τόσο πιο γρήγορα η Quicksort θα εκτελέσει . Στη συνέχεια , η συστοιχία υποδιαιρείται σε δύο ομάδες : εκείνα πάνω από την τιμή περιστροφής κινούνται προς τα δεξιά , και εκείνες κάτω από την τιμή περιστροφής κινούνται προς την αριστερή πλευρά . Ελπίζουμε, οι δύο πλευρές είναι κοντά στο να είναι ίση σε μέγεθος , αλλά δεν χρειάζεται να είναι ακριβώς το ίδιο. Τέλος , ο αλγόριθμος ξεκινά quicksort πάνω από το μηδέν σε κάθε πλευρά , με τις νέες τιμές περιστροφής επιλέγεται, και αυτά τα μισά τελικά διαιρείται σε τεταρτημόρια . Όταν η quicksort έχει υποδιαιρεθεί τον πίνακα έτσι ώστε κάθε τμήμα έχει μόνο μία τιμή , η σειρά έχει ταξινομηθεί .

Όπως και οι περισσότεροι αναδρομικοί αλγόριθμοι , αυτό μπορεί να είναι δύσκολο να απεικονίσει , έτσι ώστε να ενθαρρύνονται για να δείτε το βήμα προς βήμα - παράδειγμα που δίνεται στην τρίτη αναφορά .
Η
εικόνων

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

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