Ταξινόμηση με συγχώνευση Merge Sort

Σχετικά έγγραφα
Merge Sort (Ταξινόμηση με συγχώνευση) 6/14/2007 3:04 AM Merge Sort 1

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Ο αλγόριθμος Quick-Sort. 6/14/2007 3:42 AM Quick-Sort 1

Ταχεία Ταξινόμηση Quick-Sort

Σχεδίαση και Ανάλυση Αλγορίθμων

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort

Αλγόριθμοι ταξινόμησης

Εισαγωγή στους Αλγορίθμους

Σχεδίαση και Ανάλυση Αλγορίθμων

Ταξινόμηση. Παύλος Εφραιμίδης. Δομές Δεδομένων Ταξινόμηση 1

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης

Αλγόριθμοι Ταξινόμησης Μέρος 2

Αλγόριθμοι και Πολυπλοκότητα

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 7 η. Βασίλης Στεφανής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Εισαγωγή στην Ανάλυση Αλγορίθμων

Quicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII. Διδάσκων: Παναγιώτης Ανδρέου

Ταξινόμηση. Σαλτογιάννη Αθανασία

Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε

8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Εισαγωγή στους Αλγορίθμους Ενότητα 5η

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

Δομές Δεδομένων και Αλγόριθμοι

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ταξινόμηση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2

Αλγόριθµοι και Πολυπλοκότητα

Δοµές Δεδοµένων. 10η Διάλεξη Ταξινόµηση. E. Μαρκάκης

Αλγοριθμικές Τεχνικές

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

Αλγόριθµοι και Πολυπλοκότητα

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Παύλος Εφραιμίδης V1.1,

Προχωρημένες έννοιες προγραμματισμού σε C

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

Ταξινόµηση. Παύλος Εφραιµίδης. οµές εδοµένων και

Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε»

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ουρές Προτεραιότητας. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1

Εργαστηριακή Άσκηση 1

ΠΛΗ111. Ανοιξη Μάθηµα 9 ο. Ταξινόµηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Εισαγωγή στους Αλγόριθμους

Αλγόριθµοι Ταξινόµησης

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016

ίκτυα Ταξινόµησης (CLR κεφάλαιο 28)

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Αναζήτηση και Ταξινόµηση Χειµερινό Εξάµηνο 2014

Αναδρομικοί Αλγόριθμοι

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Αλγόριθμοι Ταξινόμησης Μέρος 4

Quicksort. Επιμέλεια διαφανειών: Δ. Φωτάκης Μικροαλλαγές: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Σχεδίαση & Ανάλυση Αλγορίθμων

Quicksort. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 9: Ταξινόμηση Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

Εισαγωγή στους Αλγορίθμους

Ταξινόμηση. 1. Γρήγορη ταξινόμηση 2. Ταξινόμηση με Συγχώνευση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Quicksort Κεφάλαιο 7. Ε. Μαρκάκης Επίκουρος Καθηγητής

Εισαγωγή στους Αλγορίθμους Ενότητα 3η

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φ Ρ Ο Ν Τ Ι Σ Τ Η Ρ Ι Ο 1 : ΤΑΞΙΝΟΜΗΣΗ Δ Ρ Ι Τ Σ Α Σ Η Λ Ι Α Σ Υ Π Ο Ψ Η Φ Ι Ο Σ Δ Ι Δ Α Κ Τ Ο Ρ Α Σ

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι Ταξινόµησης

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

Αλγόριθµοι Divide-and- Conquer

Διάλεξη 10: Αλγόριθμοι Ταξινόμησης II

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη

Διαδικασιακός Προγραμματισμός

Σχεδίαση και Ανάλυση Αλγορίθμων

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Δομές Δεδομένων και Αλγόριθμοι

Αναδρομή Ανάλυση Αλγορίθμων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Transcript:

Ταξινόμηση με συγχώνευση Merge Sort 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 Πληροφορικής 1

Διαίρει και Βασίλευε Η μέθοδος του «Διαίρει και Βασίλευε» είναι μια γενική αρχή σχεδιασμού αλγορίθμων : Divide: Διαίρεσε τα δεδομένα εισόδου S σε 2 ή περισσότερα ανεξάρτητα σύνολα S 1, S 2, Recur: λύσε το υποπροβλήματα που σχετίζονται με τα S 1 και S 2 Conquer: συνδύασε τις λύσεις για S 1 και S 2 σε μια λύση για τοs Η βασική περίπτωση για την αναδρομή είναι υποπροβλήματα μεγέθους 0 ή 1 Ο Merge-sort είναι ένας αλγόριθμος ταξινόμησης βασισμένος στην αρχή του «Διαίρει και Βασίλευε» Όπως και ο heap-sort Χρησιμοποιεί συγκριτή Έχει χρόνο εκτέλεσης O(n log n) Αντίθετα με τον heap-sort Δε χρησιμοποιεί βοηθητική ουρά προτεραιότητας Αποκτά πρόσβαση στα δεδομένα σειριακά (κατάλληλα για ταξινόμηση στοιχείων σε δίσκο) Πληροφορικής 2

Merge-Sort Ο Merge-sort σε ακολουθία εισόδου S με n στοιχεία αποτελείται από 3 βήματα: Divide: χώρισε το S σε 2 ακολουθίες S 1 και S 2 περίπου n 2 στοιχείων η καθεμία Recur: ταξινόμησε αναδρομικά τα S 1 και S 2 Conquer: συνένωσε τα S 1 και S 2 σε μια μοναδική ταξινομημένη ακολουθία Αλγόριθμος mergesort(s, C) Είσοδος ακολουθία S με n στοιχεία, συγκριτής C Έξοδος ακολουθία S ταξινομημένη σύμφωνα με τοc if S.size() > 1 (S 1, S 2 ) partition(s, n/2) mergesort(s 1, C) mergesort(s 2, C) S merge(s 1, S 2 ) Πληροφορικής 3

Συγχώνευση Σημαντικό ρόλο στη λειτουργία της ταξινόμησης συγχώνευση παίζει η συνάρτηση Merge που συγχωνεύει δύο ταξινομημένες ακολουθίες σε μια ακολουθία επίσης ταξινομημένη. Η συγχώνευση εξελίσσεται σε φάσεις. Σε κάθε φάση συγκρίνουμε τα μικρότερα στοιχεία των δύο υποακολουθιών που δεν έχουν ακόμη μεταφερθεί στην τελική ακολουθία (την ακολουθία που θα αποτελέσει το αποτέλεσμα της συγχώνευσης). Το μικρότερο από τα δύο στοιχεία μεταφέρεται στην τελική ακολουθία και η φάση ολοκληρώνεται. Πληροφορικής 4

Συγχώνευση δύο ταξινομημένων ακολουθιών Το βήμα conquer του merge-sort αποτελείται από τη συνένωση των ταξινομημένων A και B σε μια ταξινομημένη ακολουθία S που περιέχει την ένωση των στοιχείων των A και B Συγχωνεύοντας δύο ταξινομημένες ακολουθίες με n 2 στοιχεία και εφαρμόζοντας τεχνική διπλά συνδεδεμένης λίστας απαιτείται O(n) χρόνος Αλγόριθμος merge(a, B) Είσοδος ακολουθίες A και B με n 2 στοιχεία η καθεμία Έξοδος ταξινομημένη ακολουθία του A B S empty sequence while A.isEmpty() B.isEmpty() if A.first().element() < B.first().element() S.insertLast(A.remove(A.first())) else S.insertLast(B.remove(B.first())) while A.isEmpty() S.insertLast(A.remove(A.first())) while B.isEmpty() S.insertLast(B.remove(B.first())) return S Πληροφορικής 5

Δένδρο Merge-Sort Μια εκτέλεση του merge-sort απεικονίζεται από ένα δυαδικό δένδρο Κάθε κόμβος αναπαριστά μια αναδρομική κλήση του merge-sort και αποθηκεύει Μη ταξινομημένη ακολουθία πριν την εκτέλεση και το διαχωρισμό της Ταξινομημένη ακολουθία στο τέλος της εκτέλεσης Η ρίζα είναι η αρχική κλήση Τα φύλλα είναι κλήσεις σε υποακολουθίες μεγέθους 0 ή 1 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 Πληροφορικής 6

Παράδειγμα Εκτέλεσης Διαχωρισμός 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 8 6 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Πληροφορικής 7

Παράδειγμα Εκτέλεσης (συνέχεια) Αναδρομική κλήση, διαχωρισμός 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 8 6 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Πληροφορικής 8

Παράδειγμα Εκτέλεσης (συνέχεια) Αναδρομική κλήση, διαχωρισμός 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 8 6 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Πληροφορικής 9

Παράδειγμα Εκτέλεσης (συνέχεια) Αναδρομική κλήση, βασική περίπτωση 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 8 6 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Πληροφορικής 10

Παράδειγμα Εκτέλεσης (συνέχεια) Αναδρομική κλήση, βασική περίπτωση 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 8 6 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Πληροφορικής 11

Παράδειγμα Εκτέλεσης (συνέχεια) Συνένωση 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 8 6 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Πληροφορικής 12

Παράδειγμα Εκτέλεσης (συνέχεια) Αναδρομική κλήση,, βασική περίπτωση, συνένωση 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 8 6 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Πληροφορικής 13

Παράδειγμα Εκτέλεσης (συνέχεια) Συνένωση 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 8 6 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Πληροφορικής 14

Παράδειγμα Εκτέλεσης (συνέχεια) Αναδρομική κλήση,, συνένωση, συνένωση 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 6 8 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Πληροφορικής 15

Παράδειγμα Εκτέλεσης (συνέχεια) Συνένωση 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 6 8 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Πληροφορικής 16

Ανάλυση του Merge-Sort Το ύψος h του δένδρου του merge-sort είναι O(log n) Σε κάθε αναδρομική κλήση διαιρούμε την ακολουθία στα 2, Η συνολική δουλειά που γίνεται στους κόμβους βάθους i είναι O(n) Διαχωρίζουμε και συνενώνουμε 2 i ακολουθίες μεγέθους n 2 i Εκτελούμε 2 i 1 αναδρομικές κλήσεις Ο συνολικός χρόνος εκτέλεσης του merge-sort είναι O(n log n) βάθος #ακολ. μέγεθος 0 1 n 1 2 n 2 i 2 i n 2 i Πληροφορικής 17

Παράδειγμα A. Εκτελέστε αναζήτηση mergesort (συγχώνευσης) στον πίνακα Α=[5, 2, 4, 6, 1, 3, 2, 6]. Β. Επηρεάζεται η απόδοση του αλγορίθμου mergesort όταν ο πίνακας Α είναι: α. ταξινομημένος στην επιθυμητή σειρά; β. ταξινομημένος σε αντίθετη σειρά από την επιθυμητή; Δικαιολογείστε την απάντησή σας. Πληροφορικής 18

Εκτελέστε αναζήτηση mergesort (συγχώνευσης) στον πίνακα Α=[5, 2, 4, 6, 1, 3, 2, 6]. Πληροφορικής 19

Παράδειγμα Επηρεάζεται η απόδοση του αλγορίθμου mergesort όταν ο πίνακας Α είναι: α. ταξινομημένος στην επιθυμητή σειρά; β. ταξινομημένος σε αντίθετη σειρά από την επιθυμητή; Δικαιολογείστε την απάντησή σας. Η διαδικασία merge κοστίζει το ίδιο ανεξάρτητα αν τα δεδομένα είναι ήδη ταξινομημένα (φθίνοντα ή αύξοντα). Πληροφορικής 20

Περίληψη Αλγορίθμων Ταξινόμησης Αλγόριθμος Χρόνος Παρατηρήσεις selection-sort O(n 2 ) insertion-sort O(n 2 ) heap-sort O(n log n) merge-sort O(n log n) αργός in-place για μικρά σύνολα εισόδου (< 1K) αργός in-place για μικρά σύνολα εισόδου (< 1K) ταχύς in-place για μεγάλα σύνολα εισόδου (1K 1M) ταχύς σειριακή πρόσβαση δεδομένων για πολύ μεγάλα σύνολα εισόδου (> 1M) Πληροφορικής 21