/ / / Συγχώνευση ταξινόμησης: περιγραφή της λειτουργίας του αλγορίθμου και διαφορές από άλλους τύπους ταξινόμησης δεδομένων

Συγχώνευση: περιγραφή της λειτουργίας του αλγορίθμου και διαφορές από άλλους τύπους παραγγελίας δεδομένων

Κατά την ανάπτυξη διαφόρων προγραμμάτων, πρακτικάοι προγραμματιστές πρέπει πάντα να καταφεύγουν στη διαλογή προκειμένου να βελτιστοποιήσουν τους αλγόριθμους εργασίας, να βελτιώσουν την απόδοση μιας λειτουργίας αναζήτησης κ.λπ. Σήμερα, υπάρχουν πολλές διαφορετικές μέθοδοι τακτοποίησης στοιχείων με την απαιτούμενη σειρά: συγχώνευση ταξινόμησης, χρήση κλειδιού κ.λπ. είναι ένα συγκρότημα λειτουργιών, το αποτέλεσμα των οποίων οδηγεί στην ταξινόμηση αντικειμένων του ίδιου τύπου σε φθίνουσα ή αύξουσα σειρά - ανάλογα με τις απαιτήσεις μιας συγκεκριμένης εργασίας.

Όλη η ποικιλία αλγορίθμων διαλογής μπορεί να είναιχωρίζεται σε δύο κατηγορίες: τη σειρά παραγγελιών και την ταξινόμηση αρχείων. Ο πρώτος τύπος αντικειμένων μπορεί να εντοπιστεί όχι μόνο στη μνήμη RAM, αλλά και σε κάποιο μέσο, ​​υπό την προϋπόθεση ότι η πρόσβαση σε αυτό είναι ανοιχτή απευθείας. Η δεύτερη κατηγορία αντικειμένων πρέπει να βρίσκεται σε απτό μέσο: δίσκος ή μαγνητική ταινία.

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

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

Η κύρια διαφορά μεταξύ διαδοχικών αρχείων καιΤα αρχεία με την παροχή άμεσης πρόσβασης είναι ότι μπορούν να εντοπιστούν σε μέσα που είναι δύσκολο να οργανωθεί συνεχής άμεση πρόσβαση. Επιπλέον, τέτοια αρχεία συνήθως δεν χρησιμοποιούν σταθερό μήκος για τις αποθηκευμένες εγγραφές. Λόγω αυτών των χαρακτηριστικών, τα διαδοχικά αρχεία χρησιμοποιούνται μόνο σε δύο περιπτώσεις:

- εάν είναι απαραίτητο, τη χρήση φορέα δεδομένων που προσανατολίζεται σε διαδοχική πρόσβαση,

- όταν είναι βολικό να χρησιμοποιείτε μεταβλητό μήκος εγγραφών.

Το Merge sort χρησιμοποιείται αρκετά συχνάστο σύγχρονο λογισμικό. Αυτό οφείλεται στην ευρεία διανομή διαδοχικών αρχείων. Για παράδειγμα, σχεδόν όλα τα αρχεία κειμένου είναι διαδοχικά. Παρά την ευκολία εξέτασης ενός διαδοχικά οργανωμένου αρχείου ως πίνακα δεδομένων, αυτή η προσέγγιση είναι αδύνατη, καθώς είναι αδύνατη η φυσική πρόσβαση σε όλα τα στοιχεία του υλικού του αρχείου.

Το Merge sort έχει γίνει, στην πραγματικότητα, το μοναδικότρόπος ταξινόμησης διαδοχικών αρχείων. Αν και υπάρχουν άλλες μέθοδοι για την οργάνωση διαδοχικών αρχείων σήμερα, αυτή η μέθοδος παραμένει μία από τις πιο δημοφιλείς. Η φυσική ταξινόμηση συγχώνευσης σημαίνει τη διαίρεση ενός αρχείου σε δύο μέρη, ίσο σε όγκο πληροφοριών. Επιπλέον, από κάθε αρχείο, υπάρχει μια σταδιακή ανάγνωση κάθε στοιχείου αυτών που είναι διαθέσιμα αυτήν τη στιγμή. Τα ταξινομημένα στοιχεία είναι τοποθετημένα με την απαιτούμενη σειρά στο τρίτο αρχείο, το οποίο χωρίζεται περαιτέρω σε δύο παρόμοια σε μέγεθος. Έτσι εκτελείται η συγχώνευση. Pascal, C, Basic - οι περισσότερες από τις γνωστές γλώσσες προγραμματισμού υποστηρίζουν την εφαρμογή αυτού του τύπου διαδοχικής ταξινόμησης αρχείων.