1. Διαχωρίστε τη λίστα:
- Εάν η λίστα περιέχει έναν ή μηδέν κόμβους, θεωρείται ήδη ταξινομημένη.
- Διαφορετικά, χωρίστε τη λίστα σε δύο περίπου ίσα μισά.
2. Κατακτήστε (ταξινομήστε τις υπολίστες):
- Εφαρμόστε αναδρομικά τον αλγόριθμο ταξινόμησης συγχώνευσης και στα δύο μισά της λίστας, ταξινομώντας τα αποτελεσματικά.
3. Συγχωνεύστε τις ταξινομημένες υπολίστες:
- Ξεκινήστε με δύο δείκτες, ο ένας δείχνει στην κεφαλή κάθε ταξινομημένης υπολίστας.
- Συγκρίνετε τα δεδομένα στους κόμβους που επισημαίνονται από αυτούς τους δείκτες για να προσδιορίσετε ποιο στοιχείο έρχεται πρώτο στη σειρά ταξινόμησης.
- Προσθέστε το μικρότερο στοιχείο σε μια νέα λίστα που δημιουργείται.
- Μετακινήστε τον αντίστοιχο δείκτη στον επόμενο κόμβο της υπολίστας.
4. Επαναλάβετε το βήμα 3:
- Συνεχίστε τη σύγκριση και τη συγχώνευση στοιχείων και από τις δύο υπολίστες, μετακινώντας τους δείκτες όπως απαιτείται.
- Επαναλάβετε αυτή τη διαδικασία έως ότου όλα τα στοιχεία και από τις δύο υπολίστες συγχωνευθούν στη νέα λίστα.
5. Επιστρέψτε τη συγχωνευμένη ταξινομημένη λίστα:
- Αφού συγχωνευθούν όλα τα στοιχεία, η νέα λίστα που προκύπτει αντιπροσωπεύει την ταξινομημένη συνδεδεμένη λίστα. Επιστρέψτε αυτήν την ταξινομημένη λίστα ως τελική απάντηση.
Διαιρώντας συστηματικά τη λίστα σε μικρότερα μέρη, ταξινομώντας τα και συγχωνεύοντάς τα ξανά μαζί, η ταξινόμηση συγχώνευσης ταξινομεί αποτελεσματικά ολόκληρη τη συνδεδεμένη λίστα με αύξουσα σειρά. Η χρονική πολυπλοκότητα αυτής της προσέγγισης είναι O(n log n), όπου n είναι ο αριθμός των κόμβων στη συνδεδεμένη λίστα.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα