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



Σχετικά έγγραφα
Μια Επισκόπηση της Ύλης & Μερικές Οδηγίες

Διάλεξη 04: Παραδείγματα Ανάλυσης

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

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

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

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

a n + 6a n a n 2 + 8a n 3 = 0, a 0 = 1, a 1 = 2, a 2 = 8

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

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

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

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

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

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

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

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

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

Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2013

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

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

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

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

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

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

n ίδια n διαφορετικά n n 0 n n n 1 n n n n 0 4

Αλγόριθμοι. Μάρθα Σιδέρη. ιαδικαστικά: ύο πρόοδοι 31 Μαρτίου, 18 Μαΐου 7-9μμ 20% η μία, ύο Προγραμματιστικές 1 προσθετικό βαθμό η μία.

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

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας

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

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

ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2-1

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

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό

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

Αξιοποίηση Η/Υ και Πληροφορικής στην Μηχανική

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

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

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

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

Fast Fourier Transform

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

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

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

P(n, r) = n r. (n r)! n r. n+r 1

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

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

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

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

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

a n = 3 n a n+1 = 3 a n, a 0 = 1

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

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

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

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

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

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

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

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

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

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

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

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

Transcript:

1 ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ Φροντιστήριο #10: Αλγόριθμοι Διαίρει & Βασίλευε: Master Theorem, Αλγόριθμοι Ταξινόμησης, Πιθανοτικός Αλγόριθμος Μέσου, Ντετερμινιστικός Αλγόριθμος Μέσου, Άλλοι Αλγόριθμοι Διαίρει & Βασίλευε Άσκηση #1 Αποφανθείτε αν οι ακόλουθες προτάσεις είναι Σωστές ή Λανθασμένες και αιτιολογήστε συνοπτικά την απάντησή σας. Σε όλες τις περιπτώσεις δίνεται ότι T(1)=1. a. Η εξίσωση T( ) = 3 T( ) + 15έχει ασυμπτωτική λύση Ο() 4 b. Η εξίσωση T ( ) = 6 T( ) + 1 έχει ασυμπτωτική λύση Θ( ) c. Η εξίσωση T( ) = T( ) + + 5 έχει ασυμπτωτική λύση O( ) d. Η εξίσωση T ( ) = 16 T( ) + έχει ασυμπτωτική λύση O( ) 4 Υπόδειξη: Σε όλες τις περιπτώσεις, αρκεί να εφαρμόσω την απλουστευμένη μορφή του Master Theorem Έστω Τότε: c, m k T ( ) =, όπου: f ( ) =Θ ( ), k 0, a 1, b> 1, c 0, 0 at ( ) + f ( ), > m b 1) Αν α>b k logb, η ασυμπτωτική λύση είναι T ( ) =Θ( a ) ) Αν α= b k, η ασυμπτωτική λύση είναι T( ) =Θ( k log ) 3) Αν α< b k k, η ασυμπτωτική λύση είναι T ( ) =Θ( ) b Οπότε, από το Master Theorem και τους κανόνες για τις ασυμπτωτικές σχέσεις μεταξύ των συναρτήσεων, προκύπτει εύκολα ότι: a. Σωστό b. Λάθος c. Σωστό d. Λάθος

Άσκηση # (Λύθηκε στο Φροντιστήριο #11) Να λυθεί η ακόλουθη αναδρομική εξίσωση και να δώσετε το Θ όριο της ασυμπτωτικής T ( 1) +, > 0 πολυπλοκότητάς της: T ( ) = 1, = 0 Υπόδειξη: Επειδή προφανώς δεν μπορούμε να χρησιμοποιήσουμε το Master Theorem, θα ακολουθήσουμε τη μέθοδο των διαδοχικών αντικαταστάσεων. T ( ) = T ( 1) + = T ( ) + 1+ = = T ( 3) + + 1 + =... ( + 1) = T(0) + 1+ +... + = 1+ που προφανώς είναι Θ( ) Άσκηση #3 Δίνονται οι ακόλουθοι αλγόριθμοι διαίρει και βασίλευε. Να περιγράψετε τη λειτουργικότητά τους, να δώσετε την αναδρομική εξίσωση που τους περιγράφουν και να υπολογίσετε την πολυπλοκότητά τους. 1. Ταχύς Μετασχηματισμός Fourier. Πολλαπλασιασμός δύο ακεραίων από -bits ο καθένας ασυμπτωτικά ταχύτερα από Ο( ) 3. Πολλαπλασιασμός πινάκων μεγέθους x με τον αλγόριθμο του Strasse 4. Αλγόριθμος ταξινόμησης mergesort 5. Αλγόριθμος ταξινόμησης quicksort 6. Αλγόριθμος δυαδικής αναζήτησης (biary search) Υπόδειξη: Η λειτουργικότητα συζητήθηκε αναλυτικά στο φροντιστήριο και έχει παρουσιαστεί διεξοδικά στις διαλέξεις. Οι αναδρομικές σχέσεις και οι πολυπλοκότητες έχουν ως εξής: 1. T ( ) = T( ) + O ( ) με ασυμπτωτική λύση Θ ( log ).. 1.59 T ( ) = 3 T( ) + O ( ) με ασυμπτωτική λύση Θ( ) 3..81 T ( ) = 7 T( ) + O ( ) με ασυμπτωτική λύση Θ( ) 4. T ( ) = T( ) + O ( ) με ασυμπτωτική λύση Θ ( log ). Η πολυπλοκότητα αυτή αντιστοιχεί τόσο στη μέση περίπτωση όσο και στη χειρότερη περίπτωση 5. Πολυπλόκοτητα χειρότερης περίπτωσης: Ο( ). Πολυπλοκότητα μέσης περίπτωσης: T ( ) = T( ) + O ( ) με ασυμπτωτική λύση Θ ( log ).

3 6. T ( ) = T( ) + O(1) με ασυμπτωτική λύση Θ (log ). Άσκηση #4 Δίνεται η φράση ΠΑΡΑΔΕΙΓΜΑΕΠΙΛΟΓΗΣ. Να χρησιμοποιήσετε αλγόριθμο που θα υπολογίζει το 9 ο μικρότερο αλφαβητικά στοιχείο της φράσης. Ο αλγόριθμος που θα χρησιμοποιήσετε θα πρέπει να έχει πολυπλοκότητα μέσης περίπτωσης Ο(Ν), όπου Ν: μήκος της ακολουθίας. Υπόδειξη: Η αρχική ιδέα είναι να κάνω ταξινόμηση (quicksort ή mergesort) και να βρω το ζητούμενο στοιχείο. Δεν είναι όμως αποδεκτή γιατί θα είχε πολυπλοκότητα μέσης περίπτωσης Ο(ΝlogN) που είναι μεγαλύτερη από Ο(Ν). Οπότε, εφαρμόζουμε προσεκτικά τον πιθανοτικό αλγόριθμο μέσου (που συχνά αναφέρεται και ως αλγόριθμος select) που έχει πολυπλοκότητα μέσης περίπτωσης Ο(Ν). Ο αλγόριθμος υπάρχει στη διάλεξη 14. Η συνοπτική περιγραφή της λειτουργικότητάς του ακολουθεί: Αλγόριθμος select Επιλέγουμε τυχαία ένα στοιχείο του πίνακα, έστω Μ Έστω ότι ψάχνουμε το κ-οστό μικρότερο στοιχείο. o Έστω Β : # στοιχείων που είναι < από το Μ o Έστω C : # στοιχείων που είναι ίσα με το Μ o Έστω D : # στοιχείων που είναι > από το Μ If κ <= B the retur select (B, κ); else if κ <= B + C the retur M; else retur select(d, κ- B - C ); 1 ος Γύρος: Επιλέγω το Π (η επιλογή του στοιχείου είναι τυχαία) Β: ΑΑΔΕΙΓΜΑΕΙΛΟΓΗ C: ΠΠ D: ΡΣ κ=9 Β =14 ΝΑΙ! retur SELECT(B,9) ος Γύρος: Επιλέγω το Γ (η επιλογή του στοιχείου είναι τυχαία) Β: ΑΑΑ C: ΓΓ D: ΔΕΙΜΕΙΛΟΗ κ=9 Β =3 ΟΧΙ! κ=9 Β + C =5 ΟΧΙ!

4 Άρα, retur SELECT(D,9-( B + C ))= retur SELECT(D,4) 3 ος Γύρος: Επιλέγω το Ι (η επιλογή του στοιχείου είναι τυχαία) Β: ΔΕΕΗ C: ΙΙ D: ΜΛΟ κ=4 Β =4 ΝΑΙ! Άρα, retur SELECT(Β,4) 4 ος Γύρος: Επιλέγω το Ε (η επιλογή του στοιχείου είναι τυχαία) Β: Δ C: ΕΕ D: Η κ=4 Β =1 ΟΧΙ κ=4 Β + C =3 ΟΧΙ! Άρα, retur SELECT(D,4-( B + C ))= retur SELECT(D,1) 5 ος Γύρος: Επιλέγω το Η (μοναδική επιλογή) Β: (ΚΕΝΟ ΣΥΝΟΛΟ) C: Η D: (ΚΕΝΟ ΣΥΝΟΛΟ) κ=1 Β =0 ΟΧΙ κ=1 Β + C =1 ΝΑΙ! Άρα, επιστρέφω το γράμμα Η που είναι το ζητούμενο στοιχείο Άσκηση #5 (Λύθηκε στο Φροντιστήριο #11) Δίνεται η ακολουθία αριθμών: 5, 1, 6, 4, 3, 16,, 7, 5, 13, 9, 11, 11, 15, 8, 17, 0, 14, 19 Να εφαρμόσετε τον ντετερμινιστικό αλγόριθμο μέσου (media) (που συχνά αναφέρεται και ως αλγόριθμος των Blum, Floyd, Pratt, Rivest και Tarja) για την εύρεση του μεσαίου στοιχείου της παραπάνω ακολουθίας. Σύμβαση: Αν μια ακολουθία αποτελείται από άρτιο πλήθος στοιχείων π.χ. Ν, να θεωρήσετε ως μεσαίο το Ν/ +1 στοιχείο. Υπόδειξη: H συνοπτική περιγραφή της λειτουργικότητας του ντετερμινιστικού αλγορίθμου μέσου συμπυκνώνεται στα ακόλουθα βήματα (για μια αναλυτική περιγραφή, δείτε τη σχετική διάλεξη): Αλγόριθμος media Χωρίζουμε τα στοιχεία σε ομάδες των πέντε στοιχείων (πεντάδες). Η τελευταία ομάδα μπορεί να έχει < 5 στοιχεία.

5 Βρίσκουμε το μεσαίο στοιχείο κάθε πεντάδας Βρίσκουμε το μεσαίο στοιχείο των μεσαίων στοιχείων. Έστω Μ το στοιχείο αυτό Έστω ότι ψάχνουμε το κ-οστό μικρότερο στοιχείο. o Έστω Β : # στοιχείων που είναι < από το Μ o Έστω C : # στοιχείων που είναι ίσα με το Μ o Έστω D : # στοιχείων που είναι > από το Μ If κ <= B the retur media (B, κ); else if κ <= B + C the retur M; else retur media(d, κ- B - C ); Έχουμε Ν=19 στοιχεία, άρα ψάχνουμε το κ=10 ο μικρότερο στοιχείο. Εφαρμόζουμε προσεκτικά τον αλγόριθμο. Χωρίζουμε τα στοιχεία σε πεντάδες και υπολογίζουμε τα μεσαία στοιχεία (είναι με κόκκινο). 5 16 9 17 1 11 0 6 7 11 14 4 5 15 19 3 13 8 Βρίσκουμε το μεσαίο στοιχείο των μεσαίων στοιχείων, δηλ. το Μ=11. To σύνολο Β περιλαμβάνει τα μικρότερα στοιχεία από το Μ=11. Αυτά είναι τα 5, 1, 6, 4, 3,, 7, 5, 9, 8. Β =10 και καθόσον κ<= Β =10, retur media (B,10). 5 1 7 6 5 4 9 3 8 Βρίσκουμε το μεσαίο στοιχείο των μεσαίων στοιχείων, δηλ. το M=7. To σύνολο Β περιλαμβάνει τα μικρότερα στοιχεία από το Μ=7. Αυτά είναι τα 5, 1, 6, 4, 3,, 5. Β =7 To σύνολο C περιλαμβάνει τα στοιχεία που είναι ίσα με Μ=7. Αυτά είναι το 7. C =1 To σύνολο D περιλαμβάνει τα μεγαλύτερα στοιχεία από το Μ=7. Αυτά είναι τα 8, 9. D = κ=10 <= B =7 ΟΧΙ! κ=10 <= B + C =7+1=8 ΟΧΙ! Οπότε retur media(d, 10-7 - 1 )=retur media (D, ) Ψάχνουμε το ο μικρότερο στοιχείο στον πίνακα D={8,9} που είναι προφανώς το 9. Συνεπώς το 9 είναι το μεσαίο στοιχείο της ακολουθίας.

6 Άσκηση #6 Λύστε την άσκηση #4 επιλέγοντας διαφορετικά τυχαία στοιχεία από αυτά που χρησιμοποιήσαμε στο φροντιστήριο. Άσκηση #7 Να εφαρμόσετε τον ντετερμινιστικό αλγόριθμο μέσου (media) (που συχνά αναφέρεται και ως αλγόριθμος των Blum, Floyd, Pratt, Rivest και Tarja) για την εύρεση του 8 ου μικρότερου στοιχείου για την ακολουθία: 5, 36,, 1, 8, 13, 11, 0, 5, 4, 1. Τέλος, κάτι πέρα από τα συνηθισμένα: Αλγόριθμοι Ταξινόμησης και παραδοσιακοί χοροί! Δείτε τα ακόλουθα βίντεο: Bubblesort: http://www.youtube.com/watch?v=lyzqpjut5b4&feature=related Isertio sort: http://www.youtube.com/watch?v=roalu379l3u&feature=related Mergesort: http://www.youtube.com/watch?v=xaqr3g_nvoo&feature=related Quicksort: http://www.youtube.com/watch?v=ywwby6j5gz8&feature=related