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

Σχετικά έγγραφα
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φ Ρ Ο Ν Τ Ι Σ Τ Η Ρ Ι Ο 1 : ΤΑΞΙΝΟΜΗΣΗ Δ Ρ Ι Τ Σ Α Σ Η Λ Ι Α Σ Υ Π Ο Ψ Η Φ Ι Ο Σ Δ Ι Δ Α Κ Τ Ο Ρ Α Σ

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

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

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

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

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

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

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

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

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων

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

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

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

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

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

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

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

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

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

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

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

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

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

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραμματισμός Ι (ΗΥ120)

Ελαφρύτερος και βαρύτερος Αλγόριθμοι ταξινόμησης

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

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

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

Πίνακες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

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

ιαφάνειες παρουσίασης #4

Heapsort Using Multiple Heaps

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

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή

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

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

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

Διδάσκων: Παναγιώτης Ανδρέου

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

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

Πληροφορική 2. Αλγόριθμοι

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

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

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

Προγραµµατιστικές Τεχνικές

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

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

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

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

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

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

Η εφαρµογή xsortlab. Οπτικός τρόπος ταξινόµησης

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

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

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

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

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

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

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

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

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

Επιλογή. Πρόβλημα Επιλογής. Μέγιστο / Ελάχιστο. Εφαρμογές

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

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

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

int Α[] = {4, 16, 22, 12, 9, 15, 10}; { 4, 9, 10, 12, 15, 16, 22 } Α[0]=4, Α[1]=9, Α[2]=10 { 4, 16,22, 12, 9, 15, 10} { 4, 12, 16, 22, 9, 15,16, 22 }

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

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014

p

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

Πρόβληµα Επιλογής. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Επιλογή 1

Εργαστήριο Τεχνολογίας Πολυμέσων & Γραφικών, Τ.Ε.Π Π.Μ, Μάθημα: Γραφικά με Η/Υ

Εισαγωγή στον δομημένο προγραμματισμό

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

Διάλεξη 17η: Ταξινόμηση και Αναζήτηση

1η Σειρά Γραπτών Ασκήσεων

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

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

Προγραµµατισµός 1 Ταξινόµηση - Αναζήτηση

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Φροντιστήριο 2 ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Θέματα Προγραμματισμού Η/Υ

Όρια Αλγόριθμων Ταξινόμησης. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

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

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Προγραμματιστικές Τεχνικές

ΑΥΤΟΡΓΑΝΟΥΜΕΝΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

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

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

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

Transcript:

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

Ταξινόμηση

Ταξινόμηση Τι εννοούμε όταν λέμε ταξινόμηση;

Ταξινόμηση Τι εννοούμε όταν λέμε ταξινόμηση; Ποια είδη αλγορίθμων ταξινόμησης υπάρχουν;

Ταξινόμηση Τι εννοούμε όταν λέμε ταξινόμηση; Ποια είδη αλγορίθμων ταξινόμησης υπάρχουν; Κατηγοριοποίηση βάσει πράξεων Αλγόριθμοι βασιζόμενοι σε συγκρίσεις Αλγόριθμοι που χρησιμοποιούν κάποια πληροφορία

Ταξινόμηση Τι εννοούμε όταν λέμε ταξινόμηση; Ποια είδη αλγορίθμων ταξινόμησης υπάρχουν; Κατηγοριοποίηση βάσει πράξεων Αλγόριθμοι βασιζόμενοι σε συγκρίσεις Αλγόριθμοι που χρησιμοποιούν κάποια πληροφορία Κατηγοριοποίηση βάσει του χώρου που αποθηκεύεται η είσοδος Αλγόριθμοι για Κύρια Μνήμη Αλγόριθμοι για Δευτερεύουσα Μνήμη

Ταξινόμηση Τι εννοούμε όταν λέμε ταξινόμηση; Ποια είδη αλγορίθμων ταξινόμησης υπάρχουν; Κατηγοριοποίηση βάσει πράξεων Αλγόριθμοι βασιζόμενοι σε συγκρίσεις Αλγόριθμοι που χρησιμοποιούν κάποια πληροφορία Κατηγοριοποίηση βάσει του χώρου που αποθηκεύεται η είσοδος Αλγόριθμοι για Κύρια Μνήμη Αλγόριθμοι για Δευτερεύουσα Μνήμη Τι είναι Κύρια Μνήμη; Τι είναι Δευτερεύουσα Μνήμη;

Bubble Sort Ταξινόμηση Φυσαλίδας Έχω τον πίνακα S = {s 1, s 2,, s n } προς ταξινόμηση Σαρώνω όλο τον πίνακα από την αρχή Συγκρίνω κάθε φορά τα στοιχεία S i και S i + 1 Εναλλάσσω τα στοιχεία έτσι ώστε το μικρότερο να είναι αριστερά και το μεγαλύτερο δεξιά Συνεχίζω μέχρι να σαρωθεί όλος ο πίνακας και το μεγαλύτερο στοιχείο φτάσει δεξιά Επαναλαμβάνω την παραπάνω διαδικασία για τα μη ταξινομημένα στοιχεία που έμειναν

Bubble Sort Ταξινόμηση Φυσαλίδας Έχω τον πίνακα S = {s 1, s 2,, s n } προς ταξινόμηση Σαρώνω όλο τον πίνακα από την αρχή Συγκρίνω κάθε φορά τα στοιχεία S i και S i + 1 Εναλλάσσω τα στοιχεία έτσι ώστε το μικρότερο να είναι αριστερά και το μεγαλύτερο δεξιά Συνεχίζω μέχρι να σαρωθεί όλος ο πίνακας και το μεγαλύτερο στοιχείο φτάσει δεξιά Επαναλαμβάνω την παραπάνω διαδικασία για τα μη ταξινομημένα στοιχεία που έμειναν Αλγόριθμος για Κύρια Μνήμη Αλγόριθμος βασιζόμενος σε συγκρίσεις

Bubble Sort Ταξινόμηση Φυσαλίδας Έστω S = {15, 9, 6, 22, 10, 8, 4}

Bubble Sort Ταξινόμηση Φυσαλίδας Έστω S = {15, 9, 6, 22, 10, 8, 4}

Bubble Sort Ταξινόμηση Φυσαλίδας Έστω S = {15, 9, 6, 22, 10, 8, 4} Συγκρίνω 15 και 9 15, 9, 6, 22, 10, 8, 4

Bubble Sort Ταξινόμηση Φυσαλίδας Έστω S = {15, 9, 6, 22, 10, 8, 4} Συγκρίνω 15 και 9 Εναλλάσσω 15, 9, 6, 22, 10, 8, 4

Bubble Sort Ταξινόμηση Φυσαλίδας Έστω S = {15, 9, 6, 22, 10, 8, 4} Συγκρίνω 15 και 9 Εναλλάσσω 15, 9, 6, 22, 10, 8, 4 9, 15, 6, 22, 10, 8, 4

Bubble Sort Ταξινόμηση Φυσαλίδας Έστω S = {15, 9, 6, 22, 10, 8, 4} Συγκρίνω 15 και 9 Εναλλάσσω Συγκρίνω 15 και 6 15, 9, 6, 22, 10, 8, 4 9, 15, 6, 22, 10, 8, 4 9, 15, 6, 22, 10, 8, 4

Bubble Sort Ταξινόμηση Φυσαλίδας Έστω S = {15, 9, 6, 22, 10, 8, 4} Συγκρίνω 15 και 9 Εναλλάσσω Συγκρίνω 15 και 6 Εναλλάσσω 15, 9, 6, 22, 10, 8, 4 9, 15, 6, 22, 10, 8, 4 9, 15, 6, 22, 10, 8, 4

Bubble Sort Ταξινόμηση Φυσαλίδας Έστω S = {15, 9, 6, 22, 10, 8, 4} Συγκρίνω 15 και 9 Εναλλάσσω Συγκρίνω 15 και 6 Εναλλάσσω 15, 9, 6, 22, 10, 8, 4 9, 15, 6, 22, 10, 8, 4 9, 15, 6, 22, 10, 8, 4 9, 6, 15, 22, 10, 8, 4

Bubble Sort Ταξινόμηση Φυσαλίδας Έστω S = {15, 9, 6, 22, 10, 8, 4} Συγκρίνω 15 και 9 Εναλλάσσω Συγκρίνω 15 και 6 Εναλλάσσω Συγκρίνω 15 και 22 Αφήνω Συγκρίνω 22 και 10 Εναλλάσσω Συγκρίνω 22 και 8 Εναλλάσσω Συγκρίνω 22 και 4 Εναλλάσσω 15, 9, 6, 22, 10, 8, 4 9, 15, 6, 22, 10, 8, 4 9, 15, 6, 22, 10, 8, 4 9, 6, 15, 22, 10, 8, 4 9, 6, 15, 22, 10, 8, 4 9, 6, 15, 22, 10, 8, 4 9, 6, 15, 10, 22, 8, 4 9, 6, 15, 10, 8, 22, 4 9, 6, 15, 10, 8, 4, 22

Bubble Sort Ταξινόμηση Φυσαλίδας Έστω S = {15, 9, 6, 22, 10, 8, 4} Συγκρίνω 15 και 9 Εναλλάσσω Συγκρίνω 15 και 6 Εναλλάσσω Συγκρίνω 15 και 22 Αφήνω Συγκρίνω 22 και 10 Εναλλάσσω Συγκρίνω 22 και 8 Εναλλάσσω Συγκρίνω 22 και 4 Εναλλάσσω Επαναλαμβάνω τα βήματα για αυτό το κομμάτι 15, 9, 6, 22, 10, 8, 4 9, 15, 6, 22, 10, 8, 4 9, 15, 6, 22, 10, 8, 4 9, 6, 15, 22, 10, 8, 4 9, 6, 15, 22, 10, 8, 4 9, 6, 15, 22, 10, 8, 4 9, 6, 15, 10, 22, 8, 4 9, 6, 15, 10, 8, 22, 4 9, 6, 15, 10, 8, 4, 22

Bubble Sort Ταξινόμηση Φυσαλίδας Έστω S = {15, 9, 6, 22, 10, 8, 4} Συγκρίνω 15 και 9 Εναλλάσσω Συγκρίνω 15 και 6 Εναλλάσσω Συγκρίνω 15 και 22 Αφήνω Συγκρίνω 22 και 10 Εναλλάσσω Συγκρίνω 22 και 8 Εναλλάσσω Συγκρίνω 22 και 4 Εναλλάσσω Επαναλαμβάνω τα βήματα για αυτό το κομμάτι 15, 9, 6, 22, 10, 8, 4 9, 15, 6, 22, 10, 8, 4 9, 15, 6, 22, 10, 8, 4 9, 6, 15, 22, 10, 8, 4 9, 6, 15, 22, 10, 8, 4 9, 6, 15, 22, 10, 8, 4 9, 6, 15, 10, 22, 8, 4 9, 6, 15, 10, 8, 22, 4 9, 6, 15, 10, 8, 4, 22

Bubble Sort Ταξινόμηση Φυσαλίδας Χειρότερη περίπτωση Αντίστροφα ταξινομημένος πίνακας Στο πέρασμα i χρειάζονται (n-i) συγκρίσεις και ανταλλαγές Συνολικό πλήθος συγκρίσεων και ανταλλαγών n 1 i=1 i = n n 1 2 = O(n 2 ) Καλύτερη περίπτωση Ταξινομημένος πίνακας Κανένα στοιχείο δεν μετακινείται Συνολικό πλήθος συγκρίσεων n 1 1 = (n 1) = O(n) i=1

Insertion Sort Ταξινόμηση με Εισαγωγή Έχω τον πίνακα S = {s 1, s 2,, s n } προς ταξινόμηση Αρχικά όλα τα στοιχεία είναι μη ταξινομημένα Ταξινομούμε τα στοιχεία ένα κάθε φορά Παίρνουμε ένα στοιχεία από αυτά που δεν έχουν ταξινομηθεί (i 2) Βρίσκουμε την κατάλληλη θέση μεταξύ των ταξινομημένων Μετακινούμε τα μεγαλύτερα στοιχεία μία θέση δεξιά Εισάγουμε το στοιχείο στην θέση που απελευθερώθηκε Επαναλαμβάνουμε μέχρι να ταξινομήσουμε όλα τα στοιχεία

Insertion Sort Ταξινόμηση με Εισαγωγή Έχω τον πίνακα S = {s 1, s 2,, s n } προς ταξινόμηση Αρχικά όλα τα στοιχεία είναι μη ταξινομημένα Ταξινομούμε τα στοιχεία ένα κάθε φορά Παίρνουμε ένα στοιχεία από αυτά που δεν έχουν ταξινομηθεί (i 2) Βρίσκουμε την κατάλληλη θέση μεταξύ των ταξινομημένων Μετακινούμε τα μεγαλύτερα στοιχεία μία θέση δεξιά Εισάγουμε το στοιχείο στην θέση που απελευθερώθηκε Επαναλαμβάνουμε μέχρι να ταξινομήσουμε όλα τα στοιχεία Αλγόριθμος για Κύρια Μνήμη Αλγόριθμος βασιζόμενος σε συγκρίσεις

Insertion Sort Ταξινόμηση με Εισαγωγή Έστω S = {25, 57, 48, 37, 12, 92, 86, 33}

Insertion Sort Ταξινόμηση με Εισαγωγή Έστω S = {25, 57, 48, 37, 12, 92, 86, 33} 25 57 48 37 12 92 86 33 Βήμα 1 Βήμα 2 Βήμα 3 Βήμα 4 Βήμα 5 Βήμα 6 Βήμα 7 25 57 48 37 12 92 86 33 25 48 57 37 12 92 86 33 25 37 48 57 12 92 86 33 12 25 37 48 57 92 86 33 12 25 37 48 57 92 86 33 12 25 37 48 57 86 92 33 12 25 33 37 48 57 86 92

Heap Sort Ταξινόμηση Σωρού Έχω τον πίνακα S = {s 1, s 2,, s n } προς ταξινόμηση Φάση Δόμησης Μετατρέπω τον πίνακα S σε σωρό ξεκινώντας από την θέση 1 Φάση Διαλογής Διαλέγω και απομακρύνω το μεγαλύτερο στοιχείο, το οποίο θα το φέρω στην ρίζα του σωρού. Επαναλαμβάνω για τα υπόλοιπα στοιχεία φέρνοντας στην ρίζα ξεκινώντας πάλι από την θέση 1. Θέλω πάντα να διατηρείται η ιδιότητα του Σωρού, δηλ. τιμή(πατέρας(v)) τιμή(v)

Heap Sort Ταξινόμηση Σωρού Έχω τον πίνακα S = {s 1, s 2,, s n } προς ταξινόμηση Φάση Δόμησης Μετατρέπω τον πίνακα S σε σωρό ξεκινώντας από την θέση 1 Φάση Διαλογής Διαλέγω και απομακρύνω το μεγαλύτερο στοιχείο, το οποίο θα το φέρω στην ρίζα του σωρού. Επαναλαμβάνω για τα υπόλοιπα στοιχεία φέρνοντας στην ρίζα ξεκινώντας πάλι από την θέση 1. Θέλω πάντα να διατηρείται η ιδιότητα του Σωρού, δηλ. τιμή(πατέρας(v)) τιμή(v) Αλγόριθμος για Κύρια Μνήμη Αλγόριθμος βασιζόμενος σε συγκρίσεις

Heap Sort Ταξινόμηση Σωρού Έστω S = {11, 6, 4, 1, 3, 7, 12, 8}

Heap Sort Ταξινόμηση Σωρού Έστω S = {11, 6, 4, 1, 3, 7, 12, 8} 11 6 4 1 3 7 12 8

Heap Sort Ταξινόμηση Σωρού Έστω S = {11, 6, 4, 1, 3, 7, 12, 8} 11 6 4 1 3 7 12 8

Heap Sort Ταξινόμηση Σωρού Έστω S = {11, 6, 4, 1, 3, 7, 12, 8} 11 6 4 8 3 7 12 1

Heap Sort Ταξινόμηση Σωρού Έστω S = {11, 6, 4, 1, 3, 7, 12, 8} 11 6 4 8 3 7 12 1

Heap Sort Ταξινόμηση Σωρού Έστω S = {11, 6, 4, 1, 3, 7, 12, 8} 11 8 4 6 3 7 12 1

Heap Sort Ταξινόμηση Σωρού Έστω S = {11, 6, 4, 1, 3, 7, 12, 8} 11 8 4 6 3 7 12 1

Heap Sort Ταξινόμηση Σωρού Έστω S = {11, 6, 4, 1, 3, 7, 12, 8} 11 8 7 6 3 4 12 1

Heap Sort Ταξινόμηση Σωρού Έστω S = {11, 6, 4, 1, 3, 7, 12, 8} 11 8 7 6 3 4 12 1

Heap Sort Ταξινόμηση Σωρού Έστω S = {11, 6, 4, 1, 3, 7, 12, 8} 11 8 12 6 3 4 7 1

Heap Sort Ταξινόμηση Σωρού Έστω S = {11, 6, 4, 1, 3, 7, 12, 8} 11 8 12 6 3 4 7 1

Heap Sort Ταξινόμηση Σωρού Έστω S = {11, 6, 4, 1, 3, 7, 12, 8} 12 8 11 6 3 4 7 1

Heap Sort Ταξινόμηση Σωρού Έστω S = {11, 6, 4, 1, 3, 7, 12, 8} 12 8 11 6 3 4 7 1

Heap Sort Ταξινόμηση Σωρού 12 Έστω S = {11, 6, 4, 1, 3, 7, 12, 8} 8 11 6 3 4 7 1

Heap Sort Ταξινόμηση Σωρού 12 Έστω S = {11, 6, 4, 1, 3, 7, 12, 8} 8 11 6 3 4 7 1

Heap Sort Ταξινόμηση Σωρού 12 Έστω S = {11, 6, 4, 1, 3, 7, 12, 8} 1 8 11 6 3 4 7

Heap Sort Ταξινόμηση Σωρού 12 Έστω S = {11, 6, 4, 1, 3, 7, 12, 8} 1 8 11 6 3 4 7 Με τον ίδιο τρόπο συνεχίζουμε για τα υπόλοιπα

Merge Sort Ταξινόμηση με Συμβολή Έχω τον πίνακα S = {s 1, s 2,, s n } προς ταξινόμηση Διαιρούμε τον πίνακα σε δύο περίπου ίσα μέρη Ταξινομούμε αναδρομικά κάθε μέρος του πίνακα Συγχωνεύουμε τα δύο μέρη Αλγόριθμος για Κύρια Μνήμη Αλγόριθμος βασιζόμενος σε συγκρίσεις

Merge Sort Ταξινόμηση με Συμβολή Έστω S = {25, 57, 48, 37, 12, 92, 86, 33} 25 57 48 37 12 92 86 33

Merge Sort Ταξινόμηση με Συμβολή Έστω S = {25, 57, 48, 37, 12, 92, 86, 33} 25 57 48 37 12 92 86 33

Merge Sort Ταξινόμηση με Συμβολή Έστω S = {25, 57, 48, 37, 12, 92, 86, 33} 25 57 48 37 12 92 86 33

Merge Sort Ταξινόμηση με Συμβολή Έστω S = {25, 57, 48, 37, 12, 92, 86, 33} 25 57 48 37 12 92 86 33

Merge Sort Ταξινόμηση με Συμβολή Έστω S = {25, 57, 48, 37, 12, 92, 86, 33} 25 57 48 37 12 92 86 33

Merge Sort Ταξινόμηση με Συμβολή Έστω S = {25, 57, 48, 37, 12, 92, 86, 33} 25 57 48 37 12 92 86 33 25 57 37 48 12 92 33 86

Merge Sort Ταξινόμηση με Συμβολή Έστω S = {25, 57, 48, 37, 12, 92, 86, 33} 25 57 48 37 12 92 86 33 25 57 37 48 12 92 33 86

Merge Sort Ταξινόμηση με Συμβολή Έστω S = {25, 57, 48, 37, 12, 92, 86, 33} 25 57 48 37 12 92 86 33 25 57 37 48 12 92 33 86 25 57 37 48 12 92 33 86

Merge Sort Ταξινόμηση με Συμβολή 25 57 37 48 12 92 33 86 25 57 37 48 12 92 33 86

Merge Sort Ταξινόμηση με Συμβολή 25 57 37 48 12 92 33 86 25 57 37 48 12 92 33 86 25 37 48 57 12 33 86 92

Merge Sort Ταξινόμηση με Συμβολή 25 57 37 48 12 92 33 86 25 57 37 48 12 92 33 86 25 37 48 57 12 33 86 92

Merge Sort Ταξινόμηση με Συμβολή 25 57 37 48 12 92 33 86 25 57 37 48 12 92 33 86 25 37 48 57 12 33 86 92 12 25 33 37 48 57 86 92

Merge Sort Ταξινόμηση με Συμβολή 25 57 37 48 12 92 33 86 25 57 37 48 12 92 33 86 25 37 48 57 12 33 86 92 Χειρότερη Περίπτωση: O(n logn) Χειρότερη Περίπτωση: O(n logn) 12 25 33 37 48 57 86 92

QuickSort Γρήγορη Ταξινόμηση Έχω τον πίνακα S = {s 1, s 2,, s n } προς ταξινόμηση Η βασική ιδέα του αλγόριθμου βρίσκεται στη διαδικασία διαίρεση Ένα στοιχείο S[i] τοποθετείται στην τελική θέση ταξινόμησης Όλα τα στοιχεία S[0..i-1] είναι μικρότερα ή ίσα του S[i] Όλα τα στοιχεία S[i+1..n-1] είναι μεγαλύτερα ή ίσα του S[i]

QuickSort Γρήγορη Ταξινόμηση Έχω τον πίνακα S = {s 1, s 2,, s n } προς ταξινόμηση Η βασική ιδέα του αλγόριθμου βρίσκεται στη διαδικασία διαίρεση Ένα στοιχείο S[i] τοποθετείται στην τελική θέση ταξινόμησης Όλα τα στοιχεία S[0..i-1] είναι μικρότερα ή ίσα του S[i] Όλα τα στοιχεία S[i+1..n-1] είναι μεγαλύτερα ή ίσα του S[i] Υλοποίηση διαίρεσης: Θέτω δείκτη up στο πρώτο στοιχείο του πίνακα και δείκτη down στο τελευταίο στοιχείο του πίνακα. Θέτω οδηγό (pivot) το πρώτο στοιχείο του πίνακα Διατρέχω τον πίνακα από αριστερά προς τα δεξιά με τον up και αναζητώ στοιχείο > pivot και από δεξιά προς τα αριστερά με τον down και αναζητώ στοιχείο pivot. Εναλλάσσω αυτά τα στοιχεία Αλγόριθμος για Κύρια Μνήμη Αλγόριθμος βασιζόμενος σε συγκρίσεις

QuickSort Γρήγορη Ταξινόμηση Έστω S = {44, 75, 23, 43, 55, 12, 64, 77, 33} 44 75 23 43 55 12 64 77 33

QuickSort Γρήγορη Ταξινόμηση Έστω S = {44, 75, 23, 43, 55, 12, 64, 77, 33} Pivot = 44 44 75 23 43 55 12 64 77 33

QuickSort Γρήγορη Ταξινόμηση Έστω S = {44, 75, 23, 43, 55, 12, 64, 77, 33} Pivot = 44 44 75 23 43 55 12 64 77 33 Up Down

QuickSort Γρήγορη Ταξινόμηση Έστω S = {44, 75, 23, 43, 55, 12, 64, 77, 33} Pivot = 44 44 75 23 43 55 12 64 77 33 Up Down 75 > 44 33 44

QuickSort Γρήγορη Ταξινόμηση Έστω S = {44, 75, 23, 43, 55, 12, 64, 77, 33} Pivot = 44 44 33 23 43 55 12 64 77 75 Up Down

QuickSort Γρήγορη Ταξινόμηση Έστω S = {44, 75, 23, 43, 55, 12, 64, 77, 33} Pivot = 44 44 33 23 43 55 12 64 77 75 Up Down 55 > 44 12 44

QuickSort Γρήγορη Ταξινόμηση Έστω S = {44, 75, 23, 43, 55, 12, 64, 77, 33} Pivot = 44 44 33 23 43 12 55 64 77 75 Up Down

QuickSort Γρήγορη Ταξινόμηση Έστω S = {44, 75, 23, 43, 55, 12, 64, 77, 33} Pivot = 44 44 33 23 43 12 55 64 77 75 Up Down Οι δείκτες διασταυρώθηκαν οπότε εναλλάσσω τον οδηγό (pivot) με τον δείκτη down.

QuickSort Γρήγορη Ταξινόμηση Έστω S = {44, 75, 23, 43, 55, 12, 64, 77, 33} Pivot = 44 12 33 23 43 44 55 64 77 75 Up Down Οι δείκτες διασταυρώθηκαν οπότε εναλλάσσω τον οδηγό (pivot) με τον δείκτη down.

QuickSort Γρήγορη Ταξινόμηση Έστω S = {44, 75, 23, 43, 55, 12, 64, 77, 33} Pivot = 44 12 33 23 43 44 55 64 77 75 Up Down Τιμές pivot Τιμές > pivot

QuickSort Γρήγορη Ταξινόμηση Έστω S = {44, 75, 23, 43, 55, 12, 64, 77, 33} Pivot = 44 12 33 23 43 44 55 64 77 75 Up Down Τιμές pivot Τιμές > pivot Ακολουθούμε την ίδια διαδικασία για τους υποπίνακες που προέκυψαν