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

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

εισαγωγικές έννοιες Παύλος Εφραιμίδης Δομές Δεδομένων και

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

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

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

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

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

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

ΗΥ240 - Παναγιώτα Φατούρου 2

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

a 1 a 2 a n. 3. i = j 1 5. A[i + 1] = A[i] 6. i = i 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 }

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

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

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

Ουρά Προτεραιότητας (priority queue)

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

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

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

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

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

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

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

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

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

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

ρυθιμός αύξησης συναρτήσεων

ΗΥ240 - Παναγιώτα Φατούρου 2

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

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

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

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

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

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

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

δυαδική αναζήτηση Παύλος Σ. Εφραιμίδης

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

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

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

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

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

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

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

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

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

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

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

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

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ουρές προτεραιότητας Κεφάλαιο 9. Ε. Μαρκάκης Επίκουρος Καθηγητής

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

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

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

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

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

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

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

Bubble Hack Οπτικοποίηση του αλγορίθμου ταξινόμησης Bubble Sort στο Scratch

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

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

ENOTHTA 3 ΟΜΕΣ Ε ΟΜΕΝΩΝ

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

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

p

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

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

242 -ΕισαγωγήστουςΗ/Υ

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

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Transcript:

Παύλος Εφραιµίδης 1

Το πρόβληµα της ταξινόµησης 2

3 ίνεται πολυ-σύνολο Σ µε στοιχεία από κάποιο σύµπαν U (πχ. U = το σύνολο των ακεραίων αριθµών). του Σ είναι η επιβολή µιας διάταξης στα στοιχεία του συνόλου Σ. Ένας αλγόριθµος ταξινόµησης δέχεται ως είσοδο ένα πολυ-σύνολο Σ και µε βάση µια δεδοµένη σχέση διάταξης δίνει στην έξοδο τα στοιχεία του Σ διατεταγµένα.

ταξινόµησης Φυσαλιδωτή ταξινόµηση (Bubble sort) Ενθετική ταξινόµηση (Insertion sort) Ταχυταξινόµηση (Quicksort) Συγχωνευτική ταξινόµηση (Merge sort) 4

Φυσαλιδωτή (Bubble sort) Ένας απλός και ιδιαίτερα διαδεδοµένος αλγόριθµος ταξινόµησης Βασική αρχή του αλγορίθµου: Σαρώνει τη λίστα των αριθµών εναλλάσσοντας παρακείµενα στοιχεία που είναι εκτός διάταξης Μετά από ένα αριθµό σαρώσεων η λίστα θα ταξινοµηθεί 5

Ψευδοκώδικας 1. for (int i = 0; i < A.length; i++ ) { 2. for (int j = A.length - 1; j > i; j-- ) { 3. if (A[j] < A[j-1]) { 4. ανταλλαγή (swap) A[j-1], A[j] 5. } 6. } 7. } 6

Πολυπλοκότητα Πολυπλοκότητα χειρότερης περίπτωσης για πίνακα µε n στοιχεία Στο 1o πέρασµα θα χρειαστούν n-1 συγκρίσεις Στο 2 ο πέρασµα n-2 συγκρίσεις Στο n-1 πέρασµα, 1 σύγκριση Σύνολο: 2 ( n -1) + ( n - 2) +... + 1 = n( n 1) = O( n ) 1 2 7

Σέικερ (Shaker sort) 8 Παραλλαγή της ταξινόµησης φυσαλίδων Βασική αρχή του αλγορίθµου: Η shaker sortείναι µια απλά παραλλαγή της ταξινόµησης φυσαλίδων (bubble sort) στην οποία η σάρωση του πίνακα γίνεται εναλλάξ από την αρχή προς το τέλος και από το τέλος προς την αρχή Ποια η πολυπλοκότητα χειρότερης περίπτωσης;

Ενθετική ταξινόµηση (Insertion sort) Βασική αρχή: Επιλέγει ένα-ένα τα στοιχεία της µη- ταξινοµηµένης ακολουθίας και τα εισαγάγει σε µια ταξινοµηµένη λίστα 9

Ψευδοκώδικας 1. for (int j = 2; j < A.length; j++ ) { 2. κλειδί = Α[j]; 3. // Ενθέτουµε το A[j] στην ταξινοµηµένη // ακολουθία Α[1..j-1] 4. i = j 1; 5. while (i > 0 && A[i] > κλειδί) { 6. A[i+1]=A[i]; 7. i--; 8. } 9. A[i+1] = κλειδί 10.} 10

Πολυπλοκότητα Έχουµε δείξει ότι η πολυπλοκότητα χειρότερης περίπτωσης είναι O(n 2 ) 11

Συγχωνευτικήταξινόµηση (Merge sort) Βασική αρχή: Για να ταξινοµήσουµε τα στοιχεία ενός µιας ακολουθίας ιαίρει:χωρίζουµετην : ακολουθία σε δύο ίσου (ή σχεδόν ίσου) µεγέθους τµήµατα Κυρίευε: Εφαρµόζουµε αναδροµικά τη συγχωνευτική ταξινόµηση σε κάθε ένα από τα τµήµατα Συνδύασε:Όταν τα δύο τµήµατα έχουν ταξινοµηθεί, τα συγχωνεύουµε (merge) σε µία ενιαία ταξινοµηµένη ακολουθία 12

Παράδειγµα MergeSort 10 11 13 7 8 9 10 2 1 7 10 11 13 7 8 9 10 2 2 4 8 10 10 11 13 7 8 9 10 2 3 5 10 11 7 13 9 11 8 9 2 10 βήµα 6 12 7 10 11 13 2 8 9 10 13 2 7 8 9 10 10 11 13 13 Εισαγωγή στους Αλγόριθµους Αλγοριθµικές Τεχνικές

Ψευδοκώδικας 1. mergesort (A, p, r) { 2. if (p < r) { 3. q = (p+r)/2 4. mergesort(a, p, q); 5. mergesort(a, q+1, r); 6. merge(a, p, q, r); 7. } 8. } 14

Πολυπλοκότητα ιαίσθηση: Για n στοιχεία θα έχουµε logn+1 επίπεδα διαιρέσεων Σε κάθε επίπεδο το κόστος είναι της τάξης του n Σύνολο; 15

συγχωνευτική ταξινόµηση αναδροµική σχέση για το χρόνο εκτέλεσης: T ( n ) λύση: Θ (1),εάν n= 1 = 2 T ( n / 2) +Θ ( n),εάν n> 1 T(n)=Θ(n lgn) 16

Ταχυταξινόµηση (Quicksort) Βασική αρχή: Σε κάθε βήµα του αλγορίθµου επιλέγεται ένα τυχαίο στοιχείο A[q] του πίνακα Α,, ιαίρει: τα στοιχεία του Αχωρίζονται σε αυτά που είναι µικρότερα από το Α[q] και σε αυτά που είναι µεγαλύτερα από το A[q] Κυρίευε: Εφαρµόζεταιαναδροµικά η ίδια διαδικασία σε κάθε ένα από τα τµήµατα του Α που προέκυψαν Συνδύασε: εν απαιτεί καµία ενέργεια 17

ΨευδοκώδικαςΤαχυταξινόµησης 1. quicksort(α, p, r) { 2. if (p < r) { 3. q = ιαµέριση(a, p, r); 4. quicksort(a, p, q-1); 5. quicksort(a, q+1, r); 6. } 7. } 18

Πολυπλοκότητα Χειρότερη περίπτωση: O(n 2 ) Ιδανική Περίπτωση: Ο(nlogn) Μέση/Αναµενόµενη περίπτωση: Ο(nlogn), όπου ο συµβολισµός O(nlogn)κρύβει µια σταθερά λίγο µεγαλύτερη από ότι στην ιδανική περίπτωση 19

Πηγές/Αναφορές Εισαγωγή στους αλγορίθµους, Κεφάλαια 2, 3 και 7 οµές εδοµένων, Π. Μποζάνης, Κεφάλαια 3, 4 και οµές εδοµένων, N. Wirth, Κεφάλαιο 2 20