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

Σχετικά έγγραφα
Αλγόριθµοι και Πολυπλοκότητα

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

Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές» (ε) Κάθε συγκλίνουσα ακολουθία άρρητων αριθµών συγκλίνει σε άρρητο αριθµό.

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

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

ίκτυα Ταξινόµησης (CLR κεφάλαιο 28)

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

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

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

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

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

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

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

Μάθηµα Θεωρίας Αριθµών Ε.Μ.Ε

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

Heapsort Using Multiple Heaps

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

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

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

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

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

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

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

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

Outline. 6 Edit Distance

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί)

1 Ορισµός ακολουθίας πραγµατικών αριθµών

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

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

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

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

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

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

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

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

Τεχνικές Σχεδιασμού Αλγορίθμων

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

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

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

- εξίσωση που εκφράζει τον n-οστό όρο a n της ακολουθίας, - µέσω ενός ή περισσότερων όρων από τους a 0, a 1,..., a n 1, - για κάθε n n 0, όπου n 0 N.

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

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

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

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

< 1 για κάθε k N, τότε η σειρά a k συγκλίνει. +, τότε η η σειρά a k αποκλίνει.

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

τη µέθοδο της µαθηµατικής επαγωγής για να αποδείξουµε τη Ϲητούµενη ισότητα.

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 8

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

Αριθµητική Ανάλυση. ιδάσκοντες: Καθηγητής Ν. Μισυρλής, Επίκ. Καθηγητής Φ.Τζαφέρης ΕΚΠΑ. 16 Ιανουαρίου 2015

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

1 Ανάλυση αλγορίθµων. 2 Συµβολισµοί O, Ω και Θ. 3 Αναδροµικές εξισώσεις

Γραµµικη Αλγεβρα Ι Επιλυση Επιλεγµενων Ασκησεων Φυλλαδιου 8

Μαθηµατικά για Πληροφορική

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

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

Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών. Καθηγητής: Ν. Μ. Μισυρλής 29 Μαΐου / 18

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

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

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

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

Γεωµετρικοί Αλγόριθµοι (CLR, κεφάλαιο 35)

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

Κεφάλαιο 6. Πεπερασµένα παραγόµενες αβελιανές οµάδες. Z 4 = 1 και Z 2 Z 2.

Αριθµητική Ανάλυση. Ενότητα 6 Αριθµητική Παραγώγιση και Ολοκλήρωση. Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών,

Αριθµητική Ανάλυση. Ενότητα 4 Αριθµητικός Υπολογισµός Ιδιοτιµών και Ιδιοδιανυσµάτων. Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών,

I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11

f (x) = l R, τότε f (x 0 ) = l. = lim (0) = lim f(x) = f(x) f(0) = xf (ξ x ). = l. Εστω ε > 0. Αφού lim f (x) = l R, υπάρχει δ > 0

P (A) = 1/2, P (B) = 1/2, P (C) = 1/9

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

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Λυσεις Ασκησεων - Φυλλαδιο 1

Τυχαιοκρατικοί Αλγόριθμοι

ΕΠΛ 232 Φροντιστήριο 2

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

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

n a n = 2. Θεωρούµε τα σύνολα a n = n2 n n 2 + n 1. n a n = a > 0, δείξτε ότι a n > 0 τελικά.

ΚΕΦΑΛΑΙΟ 2 ΜΗ ΓΡΑΜΜΙΚΕΣ ΕΞΙΣΩΣΕΙΣ

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

ιδάσκοντες :Τµήµα Α ( Αρτιοι) : Καθηγητής Ν. Μισυρλής,Τµήµα Β (Περιττοί) : Αριθµητική Επίκ. Καθηγητής νάλυση Φ.Τζαφέρης (ΕΚΠΑ) 27 Μαΐου / 20

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3

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

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

KΕΦΑΛΑΙΟ 4 AΚΟΛΟΥΘΙΕΣ ΠΡΑΓΜΑΤΙΚΩΝ ΑΡΙΘΜΩΝ

Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές»

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

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3

Αριθµητική Γραµµική ΑλγεβραΚεφάλαιο 4. Αριθµητικός Υπολογισµός Ιδιοτιµών 2 Απριλίου και2015 Ιδιοδιανυσµάτων 1 / 50

Αριθµητική Ανάλυση. ιδάσκοντες: Τµήµα Α ( Αρτιοι) : Καθηγητής Ν. Μισυρλής, Τµήµα Β (Περιττοί) : Επίκ. Καθηγητής Φ.Τζαφέρης. 21 εκεµβρίου 2015 ΕΚΠΑ

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

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

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

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

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Προτεινοµενες Ασκησεις - Φυλλαδιο 9

Transcript:

Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 1 / 20

Επιλογή Το πρόβληµα της επιλογής Εισοδος: Ενα σύνολο A µε n (διαφορετικούς) αριθµούς και ένας αριθµός i, όπου 1 i n. Εξοδος: Το στοιχείο x A το οποίο είναι µεγαλύτερο από ακριβώς i 1 άλλα στοιχεία του A. Μπορεί να επιλυθεί σε χρόνο O(n log n). Ταξινοµούµε τους αριθµούς και στη συνέχεια απλώς επιλέγουµε το i-οστό στοιχείο. Ωστόσο, υπάρχουν και ταχύτεροι αλγόριθµοι για την επίλυση του προβλήµατος αυτού. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 2 / 20

Επιλογή Τυχαιοκρατική Επιλογή Ο αλγόριθµοςτυχαιοκρατικήεπιλογή ϐασίζεται στη λογική του αλγορίθµου της ταχυταξινόµησης. Η ϐασική ιδέα είναι να διαµερίσουµε τη συστοιχία εισόδου αναδροµικά. Αντίθετα µε την ταχυταξινόµηση, όµως, η οποία επεξεργάζεται αναδροµικά και τα δυο σκέλη της διαµέρισης, ητυχαιοκρατικήεπιλογή περιορίζεται στο ένα σκέλος. Ενώ η ταχυταξινόµηση έχει αναµενόµενο χρόνο εκτέλεσης Θ(n log n), ο αναµενόµενος χρόνος τηςτυχαιοκρατικήεπιλογή είναιθ(n), υπό την προϋπόθεση ότι τα στοιχεία εισόδου είναι διαφορετικά µεταξύ τους. Ο χρόνος εκτέλεσης χειρότερης περίπτωσης τηςτυχαιοκρατικήεπιλογή είναιθ(n 2 ), ακόµη και για να ϐρούµε το ελάχιστο. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 3 / 20

Επιλογή Τυχαιοκρατική Επιλογή Τυχαιοκρατική Επιλογή (A, p, r, i) 1 αν p = r 2 τότε επιστροφή A[p] 3 q Τυχαιοκρατική ιαµέριση (A, p, r) 4 k q p+1 5 αν i = k το Ϲητούµενο στοιχείο είναι το οδηγό 6 τότε επιστροφή A[q] 7 αλλιώς-αν i < k 8 τότε επιστροφή Τυχαιοκρατική Επιλογή (A, p, q 1, i) 9 αλλιώς επιστροφή Τυχαιοκρατική Επιλογή (A, q + 1, r, i k) k A[q] A[q] p q r Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 4 / 20

Επιλογή Παράδειγµα Βρείτε το µικρότερο έβδοµο (i = 7) στοιχείο. ιαµέριση: Επιλογή του 7 4 = 3 ου στοιχείου αντίστοιχα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 5 / 20

Επιλογή Πολυπλοκότητα κατά µέσο όρο n 1 E[T(n)] E[T(max(k 1, n k))]+o(n). n k=1 { k 1 εάν k > n/2, max(k 1, n k) = n k εάν k n/2. Ανω ϕράγµα της µέσης τιµής E[T(n)] E[T(n)] 2 n n 1 k= n/2 E[T(k)] + O(n). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 6 / 20

Επιλογή Επίλυση αναδροµικής σχέσης Ας υποθέσουµε ότι E[T(n)] cn για κάποια σταθερά c > 0 η οποία ικανοποιεί τις αρχικές συνθήκες της αναδροµικής σχέσης.. Επίσης, υποθέτουµε ότι T(n) = O(1) για n < n 0, το n 0 ϑα επιλεγεί στη συνέχεια. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 7 / 20

Επιλογή E[T(n)] 2 n 1 ck + an n k= n/2 = 2c n 1 n/2 1 k k +an n k=1 k=1 = 2c ( (n 1)n ( n/2 1) n/2 n 2 2 2c ( (n 1)n (n/2 2)(n/2 1) n 2 2 = 2c ( n 2 n n2 /4 3n/2+2 n 2 2 = c ( 3n 2 n 4 + n ) 2 2 + an ( 3n = c 4 + 1 2 2 ) + an n 3cn 4 + c 2 + an ( cn = cn 4 c ) 2 an. ) + an ) + an ) + an Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 8 / 20

Επιλογή Επίλυση αναδροµικής σχέσης (Τελικό ϐήµα) cn/4 c/2 an 0 n(c/4 a) c/2 c/4 a > 0 c > 4a n c/2 c/4 a = 2c c 4a = n 0. Εποµένως, εάν υποθέσουµε ότι T(n) = O(1) για n < n 0, έχουµε E[T(n)] = O(n). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 9 / 20

Επιλογή (Selection) Το πρόβληµα της επιλογής ίνεται µια ακολουθία S από n στοιχεία και ένας ακέραιος k, όπου 1 k n. Να προσδιοριστεί το k µικρότερο στοιχείο στην S. Ορισµός: Βαθµός: Τα στοιχεία ενός συνόλου A ικανοποιούν µια γραµµική διάταξη< τότε και µόνον τότε αν 1 για a, b A, a < b, a = b ή b < a και 2 για a, b, c A, αν a < b και b < c, τότε a < c Για µια ακολουθία S = {s 1, s 2,..., s n } της οποίας τα στοιχεία είναι και στοιχεία ενός συνόλου µε γραµµική διάταξη, ο ϐαθµός ενός στοιχείου s i του S είναι το πλήθος των στοιχείων του S που προηγούνται του s i συν 1. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 10 / 20

Επιλογή (Selection) Επιλογή ίνεται µια ακολουθία S = {s 1, s 2,...,s n }, της οποίας τα στοιχεία ικανοποιούν τη γραµµική διάταξη και ένας ακέραιος k, 1 k n. Ζητείται ο προσδιορισµός του στοιχείου της S µε ϐαθµό k. Το στοιχείο µε ϐαθµό k ϑα συµβολίζεται µε s (k). Πολυπλοκότητα (κάτω όριο) Αν τα στοιχεία του S είναι ταξινοµηµένα, δηλ. S = {s (1), s (2),..., s (n) }, τότε το s (k) ϐρίσκεται σε ένα ϐήµα. Αν k = 1 ή k = n και η S δεν είναι ταξινοµηµένη, τότε εξετάζοντας όλα τα στοιχεία της S διατηρώντας κάθε ϕορά το µικρότερο (k = 1) (ή το µεγαλύτερο k = n ) ϐρίσκεται το Ϲητούµενο στοιχείο. Ο ανωτέρω αλγόριθµος της αναζήτησης δεν µπορεί να εφαρµοστεί αν 1 < k < n. Αρα T(n) = Ω(n) (κάτω όριο) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 11 / 20

Επιλογή (Selection) Χαρακτηριστικά Αλγορίθµου διαίρει και ϐασίλευε αναδροµικός αλγόριθµος απορρίπτει ένα πλήθος στοιχείων σε κάθε ϐήµα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 12 / 20

Επιλογή (Selection) S /Q S /2Q. Q 2 Q m. S 2Q Q 2 Q 2 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 13 / 20

Επιλογή (Selection) ΕΠΙΛΟΓΗ (S,k) Βήµα 1: αν S Q τότε ταξινόµησε την S και επέστρεψε το k στο στοιχείο αλλιώς υποδιαίρεσε την S σε S /Q υπακολουθίες µε Q στοιχεία η καθεµία (µέχρι Q 1 εναποµείναντα στοιχεία) τέλος αν Βήµα 2: Ταξινόµησε κάθε υπακολουθία και υπολόγισε το µέσο της. Βήµα 3: Κάλεσε την ΕΠΙΛΟΓΗ για τον υπολογισµό του m, τον µέσο των S /Q µέσων που ϐρέθηκαν στο ϐήµα 2. Βήµα 4: ηµιούργησε 3 υπακολουθίες S 1, S 2, και S 3 µε στοιχεία της S µικρότερα, ίσα και µεγαλύτερα από το m αντίστοιχα. Βήµα 5: αν S 1 k τότε {το k στο στοιχείο της S πρέπει να είναι στο S 1 } κάλεσε την ΕΠΙΛΟΓΗ για να ϐρεις το k στο στοιχείο του S 1 αλλιώς αν S 1 + S 2 k τότε επέστρεψε m {διότι το k στοιχείο S 2 } αλλιώς κάλεσε την ΕΠΙΛΟΓΗ για να ϐρεις το (k S 1 S 2 ) στο στοιχείο του S 3 {διότι το k στοιχείο S 3 }. τέλος αν τέλος αν Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 14 / 20

Επιλογή (Selection) Ανάλυση Πολυπλοκότητας Βήµα 1: ταξινόµηση της S όταν S < Q απαιτεί σταθερό χρόνο O(1). ιαφορετικά, υποδιαίρεση της S απαιτεί c 1 n χρόνο. Βήµα 2: Η ταξινόµηση κάθε S /Q υπακολουθίας (έχει Q στοιχεία) απαιτεί σταθερό χρόνο. Για όλες c 2 n χρόνο. Βήµα 3: t(n/q), t(n) : χρόνος εκτέλεσης της ΕΠΙΛΟΓΗ Βήµα 4: c 3 n Βήµα 5: ( S /2Q)x(Q/2) = S /4 στοιχεία της S είναι ίσα ή µεγαλύτερα µε m. Συνεπώς, S 1 3 S /4. Οµοια S 3 3 S /4. Συνεπώς µια αναδροµική κλήση της ΕΠΙΛΟΓΗ απαιτεί t(3n/4) χρόνο. Συνολικά: όπου c 4 = c 1 + c 2 + c 3. t(n) = c 4 n+t(n/q)+t(3n/4) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 15 / 20

Επιλογή (Selection) Προσδιορισµός του Q Αν το Q επιλεγεί τέτοιο ώστε n/q + 3n/4 < n τότε οι δυο αναδροµικές κλήσεις στον αλγόριθµο εφαρµόζονται σε ϕθίνουσες ακολουθίες. Οποιαδήποτε τιµή του Q 5 ικανοποιεί την ανωτέρω ανισότητα. Για Q = 5 έχουµε t(n) = c 4 n+t(n/5)+t(3n/4) Υποθέτοντας t(n) c 5 n έχουµε t(n) c 4 n+c 5 (19n/20) και για c 5 = 20c 4 t(n) c 5 (n/20)+c 5 (19n/20) = c 5 n t(n) = O(n) ϐέλτιστος αλγόριθµος Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 16 / 20

Επιλογή (Selection) EPILOGH ίνεται η ακολουθία S={1,14,3,4,2,6,7,4,5,8,2,1,5,12,4,3,2,8,9,10,5,2,12} και ένας ακεραίος k, 1 < k < 23. Ζητείται να προσδιοριστεί το στοιχείο της ακολουθίας µε ϐαθµό 19, δηλ. k = 19. Λύση: Επιλέγουµε το Q ώστε να πληρείται η σχέση n + 3n < Q 4 n Q > 4. Εστω Q = 5. Βήµα 1: Επειδή S = 23 > 5 = Q ϑα υποδιαιρέσουµε την S σε S /Q υποακολουθίες, δηλαδή σε 4 υποακολουθίες µε 5 στοιχεία και σε 1 υποακολουθία µε 3 στοιχεία. 1 14 3 4 2 6 7 4 5 8 2 1 5 12 4 3 2 8 9 10 5 2 12 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 17 / 20

Επιλογή (Selection) EPILOGH Βήµα 2: α) Ταξινόµηση κάθε υποακολουθίας ϐ) Βρίσκουµε το µέσο m i κάθε υποακολουθία 1 2 3 4 14 4 5 6 7 8 1 2 4 5 12 m 1 = 3 m 2 = 6 m 3 = 4 2 3 8 9 10 2 5 12 m 4 = 8 m 5 = 5 Βήµα 3: Κλήση της ΕΠΙΛΟΓΗ για τον υπολογισµό του µέσου των µέσων B 1 : 3 6 4 8 5 m 1 m 2 m 3 m 4 m 5 B 2b : m = 5 Υπολογισµός µέσου Βήµα 4: ηµιουργία 3 ανακολουθιών S 1, S 2, S 3 µε στοιχεία<,=,> 5 αντίστοιχα 1 3 4 2 4 2 1 4 3 2 2 5 5 5 14 6 7 8 12 8 9 10 12 S 1 S 2 S 3 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 18 / 20

Β3: Το µέσο των 8, 9 είναι το m = 8 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 19 / 20 Επιλογή (Selection) ΕΠΙΛΟΓΗ Παρατηρούµε ότι S 1 = 11, S 2 = 3, S 3 = 9 Βήµα 5: Παρατηρούµε ότι k = 19 > S 1 + S 2 = 14 όποτε καλούµε την ΕΠΙΛΟΓΗ στην S 3 για να ϐρούµε το K (1) new = k S 1 S 2 K (1) new = 19 14 K (1) new = 5, δηλ το 5 o στοιχείο της ακολουθίας S 3 Β1: Για Q = 5 είναι S 3 = 9 > 5 = Q όποτε S 3 /Q = 9 = 5 1.8 δηλ. ϑα υποδιαιρέσουµε την S 3 σε 1 υποακολουθία µε 5 στοιχεία και σε 1 υποακολουθία µε 4 στοιχεία 14 6 7 8 12 8 9 10 12 Β2: α) Ταξινόµηση κάθε υποακολουθίας ϐ) Εύρεση µέσου της 6 7 8 12 14 m 1 = 8 8 9 10 12 m 2 = 9

Επιλογή (Selection) ΕΠΙΛΟΓΗ Β4: ηµιουργία 3 υποακολουθιών S 1, S 2, S 3 µε στοιχεία<,=,> 8 αντίστοιχα 6 7 8 8 14 12 9 10 12 S 1 S 2 S 3 Β5: Παρατηρούµε ότι S 1 = 2, S 2 = 2, S 3 = 5 Παρατηρούµε ότι K (1) new = 5 > S 1 + S 2 = 4 οπότε καλούµε την ΕΠΙΛΟΓΗ στην S 3 για να ϐρούµε το K(2) new = K (1) new S 1 S 2 K (2) new = 5 4 K (2) new = 1 δηλ. το 1 o στοιχείο της ακολουθίας S 3 Β1 : Είναι S 3 = 5 = Q όποτε ταξινοµούµε την S 3 και επιστρέφουµε το 1 o στοιχείο. Είναι 14 12 9 10 12 S 3 9 10 12 12 14 S 3 ταξινοµηµένη. Το 1 o στοιχείο της S 3 µετά την ταξινόµηση της είναι το 9 και κατά συνέπεια αυτό είναι το Ϲητούµενο στοιχείο Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 20 / 20