Ένα είδος συγχώνευσης είναι ένα «διαίρει και βασίλευε » αλγόριθμο , υπό την έννοια ότι παίρνει τμήματα των καταλόγων και συνεχώς σπάνε στη μέση μέχρι να φτάσει μεμονωμένα στοιχεία του καταλόγου , τα οποία στη συνέχεια συγχωνεύθηκαν σε παραγγελία. Για παράδειγμα , αρχίζουν με ένα αριθμητικό κατάλογο , όπως
5 6 2 4 1 9 8 3 7
Ταξινόμηση έναν κατάλογο , όπως αυτό με ένα είδος συγχώνευσης θα απαιτήσει μείωση κατά το ήμισυ το μέγεθος της λίστας επανειλημμένα έως ότου κάθε βασικός αριθμός υπάρχει από μόνη της . Στη συνέχεια , το είδος μπορεί να συγκρίνει τους αριθμούς και τα βάζουμε μαζί με τη σωστή σειρά ( χαμηλότερη στην υψηλότερη , σε αυτή την περίπτωση ) .
Εικόνων Η μέθοδος συγχώνευσης
Η
Η μέθοδος συγχώνευσης είναι απλή :
def συγχώνευση ( πρώτη, δεύτερη )
Λαμβάνοντας δύο λίστες , η μέθοδος θα τους συγχωνεύονται , ξεκινώντας στην αρχή της κάθε λίστας . Στη συνέχεια προσθέτει το επόμενο ελάχιστο ποσό της κάθε λίστας σε μια νέα λίστα . Το αποτέλεσμα είναι μια ταξινομημένη λίστα . ( Θυμηθείτε να εισάγετε σωστά καρτέλα άσπρο διάστημα μετά τις "ενώ" και " if /else " δηλώσεις . ) :
Ενώ i αν η πρώτη [ i ] <= δεύτερη [ ι ] : new_list.append ( πρώτα [ i ] ) i = i + 1 άλλο : new_list.append (δεύτερη [ j ] ) j = j + 1 } Τέλος , μετά το τέλος ενός πίνακα , οι υπόλοιπες τιμές τοποθετούνται στο νέο κατάλογο : new_list + = πρώτα [ i : ] Ξενοδοχεία new_list + = δεύτερη [ j : ] Ξενοδοχεία επιστρέψει end_list Η πραγματική συγχώνευση οδηγεί είδος το κύριο αλγόριθμο ταξινόμησης . Υπάρχουν δύο κύρια λειτουργικά μέρη : η υπό όρους πτυχή που σταματά την αναδρομή από τη στιγμή που οι κατάλογοι υποδιαιρούνται και την πραγματική αναδρομή που μισά τους καταλόγους . Η κατάσταση σταματήσει έρχεται πρώτο : def με συγχώνευση ( λίστα) : αν len ( λίστα) == 1 : επιστρέψει κατάλογο Αυτό εξασφαλίζει ότι όταν μια υπο λίστα φτάνει μόνο ένα στοιχείο , το στοιχείο αυτό επιστρέφεται προκειμένου να συγχωνευθεί με τους άλλους αριθμούς . Το δεύτερο μισό του το είδος είναι η αναδρομή . Μετά το " if" /υπό όρους , ως εξής : άλλο : μέση = len ( λίστα) /2 start = ταξινόμησης με συγχώνευση ( λίστα [ μέση : ] ) τέλος = ταξινόμησης με συγχώνευση ( list [ : middle ] ) συγχώνευση επιστροφής ( έναρξη, λήξη ) Λόγω της αναδρομής , αφού οι κατάλογοι σπάσει σε επιμέρους στοιχεία , ο αλγόριθμος πίσω κομμάτια μέχρι την τελευταία εκτελέστηκε μέθοδο . Έτσι , από τη στιγμή που η δήλωση « συγχώνευση επιστροφής ( έναρξη, λήξη ) " εκτελεί , ο αλγόριθμος επιστρέφει ένα συγχωνεύονται , τον κατάλογο των δύο συγχωνευμένων , ταξινομημένες λίστες μικρότερου μεγέθους ταξινόμηση .
Η Merge Sort Προϋποθέσεις
Η
εικόνων Merge Sort Αναδρομή
Η
Η
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα