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

Σχετικά έγγραφα
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

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

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

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

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

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

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

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

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

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

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

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

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

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

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

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

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

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

Αλγόριθμοι και Πολυπλοκότητα Φώτης Ε. Ψωμόπουλος, Περικλής Α. Μήτκας

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

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

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

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

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

5.1. Προσδοκώμενα αποτελέσματα

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

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

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

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

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

Κατανεμημένα Συστήματα Ι

ΦΥΛΛΑΔΙΟ ΚΑΤΑΝΟΗΣΗΣ 6 ΕΠΙΔΟΣΗ ΑΛΓΟΡΙΘΜΩΝ. 3. Να υπολογιστεί για τον παρακάτω αλγόριθμο η επίδοση του με βάση τον αριθμό των πράξεων που θα

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

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

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

οµές εδοµένων 3 ο Εξάµηνο Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ

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

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

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

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

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

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

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

Heapsort Using Multiple Heaps

Διακριτά Μαθηματικά [Rosen, κεφ. 3] Γιάννης Εμίρης Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Οκτώβριος 2018

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

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

Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός συγκρίσεων π

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

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

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

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

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

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

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

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

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι:

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

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

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

Κεφάλαιο 5. Ανάλυση αλγορίθμων

ΠΡΟΣ: Τηλέφωνο: Ινστιτούτο Εκπαιδευτικής Πολιτικής ΚΟΙΝ.:

Φροντιστήριο #4 Λυμένες Ασκήσεις Μαθηματική Επαγωγή 13/3/2018

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

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

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

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

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

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

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

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

1. Η χειρότερη περίπτωση είναι όταν γίνου 10 επαναλήψεις, δηλαδή για n = 0.

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

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

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

Εισαγωγή Ορισμός Frequency moments

Ορθότητα Χωρική αποδοτικότητα. Βελτιστότητα. Θεωρητική ανάλυση Εμπειρική ανάλυση. Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

ΠΙΘΑΝΟΤΗΤΑ ΚΑΙ ΒΑΣΙΚΕΣ Ι ΙΟΤΗΤΕΣ ΤΗΣ (Συνέχεια)

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

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

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

Παράδειγμα δομικής επαγωγής Ορισμός δομικής επαγωγής Συμβολοσειρές Γλώσσες Δυαδικά δένδρα Μαθηματικά Πληροφορικής 3ο Μάθημα Τμήμα Πληροφορικής και Τηλ

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

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

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

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

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

Transcript:

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

Ταξινόμηση του Shell Η μέθοδος που προτάθηκε από τον Shell έχει βασικό χαρακτηριστικό ότι χρησιμοποιεί µία ακολουθία ακεραίων h, h,, h k, όπου ισχύει: h > h > > h k = και γι' αυτό φέρει και την ονομασία ταξινόμηση µε μειούμενες αυξήσεις (diminishing increment). Στην πράξη η μέθοδος λειτουργεί για οποιεσδήποτε τιμές της ακολουθίας h, h,, h k- αλλά θα πρέπει να ισχύει h k =.

H ταξινόμηση του Shell είναι µία παραλλαγή της ταξινόμησης µε εισαγωγή. H μέθοδος αποτελείται από k φάσεις, όπου στην i-οστή φάση (για i k ) θεωρείται το βήμα h ί, οπότε ακολουθώντας τη λογική της ταξινόμησης µε εισαγωγή τίθενται σε σωστή διάταξη μεταξύ τους τα στοιχεία του πίνακα που απέχουν h ί θέσεις. Προφανώς η k-οστη και τελευταία φάση είναι ένα κλασικό πέρασμα της ταξινόμησης µε εισαγωγή που ολοκληρώνει τη διαδικασία. Aν ο πίνακας είναι ταξινομημένος µε βάση κάποιο βήμα, τότε παραμένει ταξινομημένος µε βάση το ίδιο βήμα ακόμη και αν εφαρμοσθούν ένα ή περισσότερα επόμενα βήματα στη συνέχεια. Επίσης, καθώς η μέθοδος αυτή στηρίζεται στην ταξινόμηση µε εισαγωγή, είναι και αυτή ευσταθής, δηλαδή δεν ανταλλάσσει αμοιβαία στοιχεία µε ίσα κλειδιά. 3

Αλγόριθμος Shell. while (h >0) do 3. for i h to n do 4. tmp A[i]; j i; 5. while ((j > h and A[j - h] > tmp ) do 6. A[j] A[j-h]; j j h; 7. A[j] tmp. h = n ; 8. h = h ; 4

Ένα παράδειγμα με 9 κλειδιά, ταξινόμηση με 3 βήματα μεγέθους 4,, Αρχικά Κλειδιά 5 7 56 5 0 9 90 45 5 5 45 5 0 9 7 Βήµα 4 5 0 9 56 45 7 90 5 5 7 56 Βήµα 5 0 9 45 56 5 90 7 9 5 56 7 90 Βήµα 5 0 9 45 5 56 7 90 Δες το Shell_Srt_Example.pdf 5

Πρόταση. Η πολυπλοκότητα της shellsort είναι Θ(n ) στη χειρότερη περίπτωση, για την ακολουθία του Shell, όπου h i = n και h i = hi Απόδειξη Για να αποδείξουμε ότι η πολυπλοκότητα της χειρότερης περίπτωσης είναι Θ(n ), πρώτα θα αποδείξουμε ότι ισχύει το Ω(n ) και μετά το O(n ). Αποδεικνύουμε το κάτω φράγμα πρώτα κατασκευάζοντας μια «κακή» περίπτωση. Έστω ότι n = k, οπότε κάθε βήμα είναι άρτιος αριθμός εκτός ατό το τελευταίο βήμα που ισούται µε τη μονάδα. Θεωρούμε τα δεδομένα εισόδου αρχικά τοποθετούνται τα n/ μεγαλύτερα στοιχεία στις άρτιες θέσεις, ενώ τα n/ μικρότερα στοιχεία τοποθετούνται στις περιττές θέσεις. Καθώς όλα τα βήματα είναι άρτιοι αριθμοί εκτός από το τελευταίο που είναι περιττός όταν θα φθάσουμε στο τελευταίο βήμα, όλα τα n/ μεγαλύτερα στοιχεία είναι ακόμη στις άρτιες θέσεις και όλα τα n/ μικρότερα στοιχεία είναι στις περιττές θέσεις. Επομένως το i-οστό μικρότερο στοιχείο (για i n/) βρίσκεται στην (i - )-οστή θέση πριν αρχίσει το τελικό πέρασμα και πρέπει να εκτελεσθούν i - ανταλλαγές μέχρι να φθάσει στην τελική του θέση. Άρα, για όλα τα n/ μικρότερα στοιχεία θα απαιτηθούν n n n n n ( i ) = = = Ω( n ) () ανταλλαγές i= 8 6

Ένα κακό παράδειγμα αρχικών δεδομένων (όχι το χειρότερο). Το πλήθος των ανταλλαγών μετά το -sort είναι 34567=8, και προφανώς το τελευταίο πέρασμα θα απαιτήσει σημαντικό χρόνο. 7

Δεύτερο σκέλος Αρκεί να θεωρήσουμε ότι κατά το πέρασμα µε βήμα h k, ουσιαστικά εκτελείται µία ταξινόμηση µε εισαγωγή (τετραγωνικής πολυπλοκότητας) για ένα σύνολο n/h k στοιχείων. Επομένως, για το σύνολο των περασμάτων µε αυτό το βήμα η πολυπλοκότητα είναι ( ( n h ) ) = O( n h ) O h k Επομένως για το σύνολο των βημάτων προκύπτει η πολυπλοκότητα k ( ) ( ) t t = O n hi = O n h i= i i Καθώς στη γεωμετρική σειρά t (καθώς n = k h n ) = h i = h i = hi i t i= h i = 4 8... n ( ) ( ) ( ) / i =... t t O n h () i = O n h i = O n i= i= Η πολυπλοκότητα της ταξινόμησης του Shell για δεδομένη ακολουθία βημάτων από τις () & () προκύπτει ότι είναι στη χειρότερη περίπτωση 4 8 k = k / 4 8... k ( Θ n ) https://secweb.cs.odu.edu/~zeil/cs36/web/website/lectures/shell/page/shell.html #d0e36 8

Εναλλακτικές προτάσεις στην ακολουθία των βημάτων Στη βιβλιογραφία έχουν παρουσιασθεί πολλές εναλλακτικές προτάσεις για την ακολουθία των βημάτων και έχουν αναλυθεί. Για παράδειγμα, για την ακολουθία, 3, 7,..., k - του Hibbard, αν και εικάζεται από πειραματικά αποτελέσματα ότι η πολυπλοκότητα είναι αποδειχθεί είναι 3 ( ) O n το όριο που έχει Ο Sedgewick πρότεινε αρκετές ακολουθίες βημάτων που δίνουν πολυπλοκότητα χειρότερη περίπτωσης 5 4 ( ) O n 4 3 ( ) O n Η πολυπλοκότητα μέσης περίπτωσης εικάζεται ότι είναι 7 6 ( ) O n Η καλύτερη ακολουθία βημάτων που απέδειξε ο Sedgewick είναι η, 5, 9, 4, 09,. Ο αλγόριθμος του Shell είναι περίπτωση ενός απλού αλγόριθμου με ιδιαίτερα απαιτητικές τις αποδείξεις πολυπλοκότητας. Στην πράξη δίνει καλά αποτελέσματα για τιμές του n στις δεκάδες χιλιάδες, και επιλέγεται για σχετικά μεγάλα μεγέθη δεδομένων λόγω της απλότητας του κώδικα 9

Ενδιαφέρουσες παρουσιάσεις του shellsort : http://www.iti.fh-flensburg.de/lang/algorithmen/sortieren/shell/shellen.htm https://secweb.cs.odu.edu/~zeil/cs36/web/website/lectures/shell/page/shell.html#d0e36 0