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

Σχετικά έγγραφα
Ο αλγόριθμος Quick-Sort. 6/14/2007 3:42 AM Quick-Sort 1

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

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

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

Merge Sort (Ταξινόμηση με συγχώνευση) 6/14/2007 3:04 AM Merge Sort 1

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

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

Αλγόριθμοι και πολυπλοκότητα Bucket-Sort και Radix-Sort

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

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

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

Διοικητική Λογιστική

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

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

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

Ψηφιακή Επεξεργασία Εικόνων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

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

Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

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

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

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

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

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

Μάρκετινγκ Αγροτικών Προϊόντων

Βάσεις Περιβαλλοντικών Δεδομένων

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

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Αλγόριθμοι και πολυπλοκότητα Η Άπληστη Μέθοδος

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Διοικητική Λογιστική

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

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

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Αλγόριθμοι και πολυπλοκότητα Περιήγηση Πανεπιστημίων

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Δομές Δεδομένων Ενότητα 1

Στατιστική. 5 ο Μάθημα: Βασικές Έννοιες Εκτιμητικής. Γεώργιος Μενεξές Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Βάσεις Περιβαλλοντικών Δεδομένων

Διδακτική Πληροφορικής

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Κβαντική Επεξεργασία Πληροφορίας

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

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

Τεχνικό Σχέδιο - CAD

Οικονομική Γεωργικών Εκμεταλλεύσεων

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

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

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 2: Εφαρμογές Δικτυωτής Ανάλυσης (1 ο Μέρος)

Τεχνικό Σχέδιο - CAD

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Στατιστική. 6 ο Μάθημα: Διαστήματα Εμπιστοσύνης και Έλεγχοι Υποθέσεων. Γεώργιος Μενεξές Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Μάρκετινγκ Αγροτικών Προϊόντων

Μηχανολογικό Σχέδιο Ι

Μάρκετινγκ Αγροτικών Προϊόντων

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

6 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 10: Διαχείριση Έργων (2ο Μέρος)

Αλγόριθμοι και πολυπλοκότητα Οριζόντια διερεύνηση

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΚΑΛΑΘΟΣΦΑΙΡΙΣΗΣ ΙΙ

Διαχείριση Έργων. Ενότητα 10: Χρονοπρογραμματισμός έργων (υπό συνθήκες αβεβαιότητας)

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 3: Εφαρμογές Δικτυωτής Ανάλυσης (2 ο Μέρος)

Δομημένος Προγραμματισμός

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

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

Εισαγωγή στην Πληροφορική

Κβαντική Επεξεργασία Πληροφορίας

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ

Αριθμητική Ανάλυση. Ενότητα 1: Εισαγωγή Βασικές Έννοιες. Φραγκίσκος Κουτελιέρης Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών

Διαφήμιση και Δημόσιες Σχέσεις Ενότητα 9: Σχέσεις διαφημιστή-διαφημιζόμενου

Εισαγωγή στους Υπολογιστές

Βέλτιστος Έλεγχος Συστημάτων

Προσχολική Παιδαγωγική Ενότητα 2: Οργάνωση χρόνου και χώρου στα νηπιαγωγεία

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

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Ψηφιακή Επεξεργασία Εικόνων

Διοικητική Λογιστική

Πληροφορική ΙΙ Θεματική Ενότητα 5

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Διοικητική Λογιστική

Λειτουργία και εφαρμογές της πολιτιστικής διαχείρισης

ΗΛΕΚΤΡΟΝΙΚΗ Ι Ενότητα 5

Transcript:

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

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Κρήτης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 2

Σημείωμα αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση, Όχι Παράγωγο Έργο 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-nd/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.. 3

Ο αλγόριθμος Quick-Sort 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 Quick-Sort 4

Κύρια σημεία για μελέτη Quick-sort ( 4.3) Αλγόριθμος Partition step Δέντρο Quick-sort Παράδειγμα εκτέλεσης Ανάλυση του quick-sort (4.3.1) In-place quick-sort ( 4.8) Συνόψιση αλγόριθμων ταξινόμησης Quick-Sort 5

Quick-Sort Ο Quick-sort είναι ένας αλγόριθμος ταξινόμησης που χρησιμοποιεί τυχαιότητα και βασίζεται στην τεχνική «διαίρει και βασίλευε». Divide: διαλέγεται ένα τυχαίο στοιχείο Χ (που ονομάζεται pivot) και ένα τμήμα S μέσα L τα στοιχεία μικρότερα από x E τα στοιχεία ίσα με x G τα στοιχεία μεγαλύτερα από x Recur: ταξινομούνται τα σύνολα L και G Conquer: ενώνονται τα στοιχεία L, E και G L E x x x G Quick-Sort 6

Τμηματοποίηση (partition) Τμηματοποιούμε μια Algorithm partition(s, p) ακολουθία εισόδου ως εξής: Input sequence S, position p of pivot Απομακρύνουμε διαδοχικά, Output subsequences L, E, G of the,κάθε στοιχείο y από την elements of S less than, equal to, ακολουθία S και or greater than the pivot, resp. L, E, G empty sequences Εισάγουμε το y στο σύνολο x S.remove(p) L, E ή στο G, ανάλογα με το αποτέλεσμα της σύγκρισης while S.isEmpty() του με το x. y S.remove(S.first()) if y < x Κάθε εισαγωγή ή L.insertLast(y) απομάκρυνση γίνεται στην αρχή ή στο τέλος της else if y = x ακολουθίας, και έτσι παίρνει E.insertLast(y) χρόνο O(1). else { y > x } G.insertLast(y) Έτσι, το τμήμα του quick-sort return L, E, G που αφορά το partition Quick-Sort 7 παίρνει χρόνο O(n).

Το δέντρο Quick-Sort Μια εκτέλεση του quick-sort αναπαρίσταται με ένα δυαδικό δέντρο. Κάθε κόμβος αναπαριστά μια αναδρομική κλήση του αλγόριθμου quick-sort και αποθηκεύει Την αταξινόμητη ακολουθία πριν από την εκτέλεση και το pivot Την ταξινομημένη ακολουθία στο τέλος της εκτέλεσης. Η ρίζα είναι η αρχική κλήση. Τα φύλλα είναι κλήσεις σε υποακολουθίες 0 ή 1 Quick-Sort 8

Το δέντρο Quick-Sort 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 Quick-Sort 9

Παράδειγμα εκτέλεσης Η επιλογή του Pivot 7 2 9 4 3 7 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 2 2 9 4 4 9 3 3 8 8 9 9 4 4 Quick-Sort 10

Παράδειγμα εκτέλεσης (συν.) Τμηματοποίηση,αναδρομική κλήση, επιλογή του pivot. 7 2 9 4 3 7 6 1 1 2 3 4 6 7 8 9 2 4 3 1 2 4 7 9 3 8 6 1 1 3 8 6 2 2 9 4 4 9 3 3 8 8 9 9 4 4 Quick-Sort 11

Παράδειγμα εκτέλεσης (συν.) Τμηματοποίηση,αναδρομική κλήση, base case 7 2 9 4 3 7 6 1 1 2 3 4 6 7 8 9 2 4 3 1 2 4 7 3 8 6 1 1 3 8 6 1 1 9 4 4 9 3 3 8 8 9 9 4 4 Quick-Sort 12

Παράδειγμα εκτέλεσης (συν.) Αναδρομική κλήση,, base case, συνένωση 7 2 9 4 3 7 6 1 1 2 3 4 6 7 8 9 2 4 3 1 1 2 3 4 3 8 6 1 1 3 8 6 1 1 4 3 3 4 3 3 8 8 9 9 4 4 Quick-Sort 13

Παράδειγμα εκτέλεσης (συν.) Αναδρομική κλήση, επιλογή του pivot 7 2 9 4 3 7 6 1 1 2 3 4 6 7 8 9 2 4 3 1 1 2 3 4 7 9 7 1 1 3 8 6 1 1 4 3 3 4 8 8 9 9 9 9 4 4 Quick-Sort 14

Παράδειγμα εκτέλεσης (συν.) Τμηματοποίηση,..,αναδρομική κλήση, base case 7 2 9 4 3 7 6 1 1 2 3 4 6 7 8 9 2 4 3 1 1 2 3 4 7 9 7 1 1 3 8 6 1 1 4 3 3 4 8 8 9 9 9 9 4 4 Quick-Sort 15

Παράδειγμα εκτέλεσης (συν.) Ένωση, ένωση 7 2 9 4 3 7 6 1 1 2 3 4 6 7 7 9 2 4 3 1 1 2 3 4 7 9 7 17 7 9 1 1 4 3 3 4 8 8 9 9 9 9 4 4 Quick-Sort 16

Πολυπλοκότητα χειρότερης περίπτωσης Η πολυπλοκότητα χειρότερης περίπτωσης για τον quick-sort συμβαίνει όταν το pivot είναι το μοναδικό minimum ή maximum στοιχείο. Το ένα σύνολο από τα L και G έχει μέγεθος n - 1 και το άλλο έχει μέγεθος 0 Ο χρόνος εκτέλεσης είναι ποσοστό του συνολικού χρόνου εκτέλεσης n + (n - 1) + + 2 + 1 Έτσι, ο χρόνος εκτέλεσης της χειρότερης περίπτωσης είναι O(n 2 ) Βάθος Χρόνος 0 n 1 n - 1 n - 1 1 Quick-Sort 17

Αναμενόμενος χρόνος εκτέλεσης Θεωρείστε μια αναδρομική κλήση του quick-sort σε μια ακολουθία μεγέθους s Καλή κλήση: τα μεγέθη των L και G είναι το καθένα μικρότερο από 3s/4 Άσχημη κλήση: ένα από τα L και G έχει μέγεθος μεγαλύτερο από 3s/4 Μια κλήση είναι καλή με πιθανότητα 1/2 Probabilistic Fact: Ο αναμενόμενος αριθμός ρίψης κερμάτων για να φέρουμε k κορώνες είναι 2k Έτσι, για έναν κόμβο βάθους i, αναμένουμε ότι: i/2 κόμβοι πατέρες σχετίζονται με καλές κλήσεις Το μέγεθος της ακολουθίας εισόδου για την παρούσα κλήση είναι το πολύ (3/4) i/2 n Έτσι,έχουμε Για έναν κόμβο βάθους 2log 4/3 n, το αναμενόμενο μέγεθος της ακολουθίας εισόδου είναι ένα Το αναμενόμενο ύψος του δέντρου quick-sort είναι O(log n) Η συνολική ποσότητα δουλειάς που γίνεται στους κόμβους του ίδιου βάθους του δέντρου quick-sort είναι O(n) Έτσι ο αναμενόμενος χρ ονος εκτέλεσης του quick-sort είναι O(n log n) Quick-Sort 18

In-Place Quick-Sort Ο Quick-sort μπορεί να υλοποιηθεί για να τρέχει in-place Στο βήμα τμηματοποίησης, εκτελούμε λειτουργίες αντικατάστασης για να επανατακτοποιήσουμε τα στοιχεία της ακολουθίας εισόδου έτσι ώστε Τα στοιχεία που είναι μικρότερα από το pivot έχουν τάξη μικρότερη από h Τα στοιχεία που είναι ίσα με το pivot έχουν τάξη ανάμεσα στο h και στο k Τα στοιχεία που είναι μεγαλύτερα από το pivot έχουν τάξη μεγαλύτερη από k Οι αναδρομικές κλήσεις θεωρούν ότι Στοιχεία με τάξη μικρότερη από h Algorithm inplacequicksort(s, l, r) Input sequence S, ranks l and r Output sequence S with the elements of rank between l and r rearranged in increasing order if l r return i a random integer between l and r x S.elemAtRank(i) (h, k) inplacepartition(x) inplacequicksort(s, l, h - 1) inplacequicksort(s, k + 1, r) Στοιχεία με τάξη μεγαλύτερη από k Quick-Sort 19

Συνόψιση αλγόριθμων ταξινόμησης Αλγόριθμος Πολυπλοκό τητα Σημειώσεις selection-sort O(n 2 ) insertion-sort O(n 2 ) in-place αργός (καλός για μικρά δεδομένα) in-place αργός (καλός για μικρά δεδομένα) quick-sort O(n log n) expected heap-sort O(n log n) in-place, randomized γρηγορότερος (καλός για μεγάλα δεδομένα) in-place γρήγορος (καλός για μεγάλα δεδομένα) ακολουθιακή πρόσβαση merge-sort O(n log n) Quick-Sort δεδομένων Πολύ γρήγορος (καλός για 20 τεράστια δεδομένα ) 7/9/2015 10:56 AM

Τέλος Ενότητας