Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

Σχετικά έγγραφα
i, ημ μκμμάδμομε ζύκμιμ ηςκ

Λύζεηξ αζθήζεςκ ζενμόηεηαξ

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

1 η Ε π α ν α λ η π τ ι κ ή Ά σ κ η σ η

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

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

Επακαιεπηηθό ζέμα ζημ 1 0 θεθάιαημ

Οκμμάδμομε δηαηεηαγμέκμ δεύγμξ με πνώημ ζημηπείμ ημ θαη δεύηενμ ημ (ζομβμιηθά:(, ) ), ημ δηζύκμιμ: { },{, . Δειαδή:

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

ΙΑΘΕΙΑ Β1.1 Μ ΝΘΑΚΕΠΕΟ ΓΕ

Multiple Choice Examination

ΘΕΜΑ 1 (μμκάδεξ 25) Η πενίμδμξ ηεξ ηαιάκηςζεξ ημο ζώμαημξ αοημύ είκαη: i) Τ = π/2s ii) Τ = 2/πs iii) Τ = 1/πs iv) Τ = 2s iv) Τ = πs (αηηημιόγεζε)

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

ΑΣΚΗΣΕΙΣ ΣΤΟΥΣ ΜΙΓΑΔΙΚΟΥΣ AΡΙΘΜΟΥΣ

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

Κεθάιαημ 11. Πνμζεγγηζηηθμί Αιγόνηζμμη

Καηακμώκηαξ ηα Νέα Μέζα. Εογεκία Σηαπένα

Γπέθηαζε ηςκ Ονίςκ ηεξ Γπηιοζημόηεηαξ

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

Π α ζ ο κ ζ ή μ α η α μ ε κ ύ μ α η α ή η α κ ή δ ε γ κ ς ζ η ά : Γ ι ε ο ζ ε ν ί α, Δ ε μ μ θ ν α η ί α, α δ μ ύ ι ς η ε Γ ι ι ά δ α.

Δηαπείνηζε πμιιαπιώκ ειεθηνμκηθώκ δηεοζύκζεωκ

ΩΤΟΣΚΛΗΡΥΝΣΗ. Δρ Εμμανουθλ Χατζημανώλης. Ωτορινολαρυγγολόγος-Χειρουργός Κεφαλής και Τραχήλου. Δ/τής της Κλινικής Κεφαλής και Τραχήλου νοσ.

Η ΠΡΟΝΟΟΚΟΜΔΙΑΚΗ ΦΡΟΝΣΙΓΑ. με ηην έγκριζη ηοσ Εθνικού Κένηροσ PHTLS διοργανώνει ζηις Ιανοσαρίοσ 2012

Πνμεγμύμεκεξ γκώζεηξ: Τα παηδηά λένμοκ κα δηαβάδμοκ θαη κα γνάθμοκ θάπμηεξ θςκμύιεξ θαη μνηζμέκα γνάμμαηα.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Μέηνα Αημμηθήξ Πνμζηαζίαξ

Οδεγόξ Φνήζεξ Webmail

Φνήζημεξ Λεηημονγίεξ ηςκ. Windows 7

Παραγωγή Τελικού Κώδικα. Γιώργος Μανής

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

r 1 Π 1 r 2 Π 2 πέτασμα στισμή μομοτρωματικό υως στισμή

Κεθάλαιο 3 Κρσπηογραθία δημόζιοσ κλειδιού και πιζηοποίηζη ασθεμηικόηηηας μημσμάηφμ

Πνμθόπημξ Mαγηάηεξ,

1. Camtasia. 2. Audacity. 3. Movie Maker

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

Θμγμηεπκία γηα Παηδηά Ζ

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων. Ενότητα: Βασικά στοιχεία σχεδίασης & ανάλυσης αλγορίθμων

Αλάιπζε Αιγνξίζκωλ. Κεθ. 13: Τπραίνη Αιγόξηζκνη

641: πεδίαζε θαη Ακάιοζε Αιγμνίζμςκ. Υάνεξ Παπαδόπμοιμξ

Μελέηη Ηλεκηοικήπ Εγκαηάζηαζηπ. Δκπαιδεςηήρ: αββίδεο Μηράιεο. Σερληθή ρνιή Απγόξνπ. Μάθημα: Σερλνινγία Ηιεθηξηθώλ Εγθαηαζηάζεσλ

Κα ακαγκςνίζμομε ημ ηηηάκημ ένγμ (όιςκ) ηςκ ενγαδμμέκςκ ζημ CERN. Να απμθηήζμομε βηςμαηηθέξ γκώζεηξ γηα πενίπιμθεξ έκκμηεξ ηςκ Φοζηθώκ Γπηζηεμώκ.

ΕΞΟΡΤΞΗ & ΚΑΣΑΚΕΤΕ ΣΗΝ ΕΤΡΩΠΗ ΜΑΘΗΜΑ 43

Άπιεζημη αιγόνηζμμη. Μάνζα Σηδένε

Μυοπάθεια και τατίνες

Μμκηειμπμίεζε θαη Aκάιοζε Βημσαηνηθώκ θαη Φοζηθώκ Σοζηεμάηςκ

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

ΜΑΘΕΜΑ Β2.1 Ε ΤΝΘΓΕ ΣΕ ΑΣΜΟΦΑΖΡΑ, Ε ΑΣΜΟΦΑΖΡΑ, ΟΖ ΑΝΓΜΟΖ.

Μικροβιολογία & Υγιεινή Τροφίμων

ΙΑΘΕΙΑ Α1.3 Ε ΥΡΕΕ ΣΩΚ ΥΑΡΣΩΚ ΣΕΚ ΗΑΘΕΙΓΡΖΚΕ ΔΩΕ. Ελένη Παλούμπα, Χημικός, Πειραματικό Γσμνάσιο Σπάρτης

Τπμιμγηζμόξ ηεξ ηαπύηεηαξ ηεξ πεμηθήξ ακηίδναζεξ ημο Mg με HCl

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

ΕΙΗΓΗΗ: Σα Πληροθοριακά σζηήμαηα ηων Νοζοκομείων ζηην Ελλάδα ηης κρίζης: Ο ρόλος ηοσ cloud computing & ηοσ Εζωηερικού Ελέγτοσ

Δηάιελε 6: Δηαπείνηζε Μκήμεξ & Δοκαμηθέξ Δμμέξ Δεδμμέκςκ

Tνόπμη δηαθοηηανηθήξ επηθμηκςκίαξ

Γηζαγωγή ζηεκ Πιεζοζμηαθή Οηθμιμγία. Α. Φακηηκμύ

Κοσμάς Λιάμος Γενικός Ιατρός Επιμελητής Β Περιυερειακό Ιατρείο Βελβεντού Κέντρο Τγείας ερβίων

Κοιμό Γεωγραφικό Υπόβαθρο για το WISE

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

H ΑΞΙΑ ΣΗ ΓΛΙΑ ΚΑΙ ΣΟΤ ΓΛΑΙΟΛΑΔΟΤ ΜΤΘΟΙ & ΠΡΑΓΜΑΣΙΚΟΣΗΣΑ. << Γιηά & Λάδη >>

ΑΓΠΠ 2o Γπαμαληπηικό Διαγώμιζμα

ΓΗΔΕΘΩΟΓΖΟ ΠΕΟ ΝΑΖΔΑΓΩΓΖΗΕΟ ΟΜΘΕΟ, ΑΝΘ. Αθαδεμασθό έημξ: (πνμκμιμγηθή ζεηνά)

HY-335 : Δίθηοα Υπμιμγηζηώκ

ΓΤΡΩΠΗ. 5 ή 6 ΕΙΓΞΓΟ ΑΓΞΜΝΜΞΖΗΕ ΓΗΔΞΜΙΕ ΖΠΑΘΖΗΜ ΝΑΚΜΞΑΙΑ ΒΓΚΓΠΖΑ-ΦΘΩΞΓΚΠΖΑ-ΟΖΓΚΑ-ΞΩΙΕ ΑΚΑΩΞΕΟΓΖΟ : 5ΕΙΓΞΓΟ : ΗΑΘΓ ΠΞΖΠΕ 6ΕΙΓΞΓΟ : KAΘΓ ΠΞΖΠΕ

Αμαμεώζιμες πηγές εμέργειας

Τίτλος Μαθήματος: Θεωρία Πολυπλοκότητας. Ενότητα: H κλάση ΝΡ. Διδάσκων: Λέκτορας Xάρης Παπαδόπουλος. Τμήμα: Μαθηματικών

Τβοιδικό Ιζξδύμαμξ Μξμηέλξ transistor BJT & εκηζποηέξ. Ειεθηνμκηθή Γ Σάλε /Β ελάμεκμ Γπίθ. Ηαζεγήηνηα Γ. Ηαναγηάκκε

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

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Σωλήμες Ηλεκηρικώμ Εγκαηαζηάζεωμ. Εκπαιδεσηής: Σαββίδης Μιτάλης. Τετνική Στολή Ασγόροσ. Μάθημα: Τετνολογία Ηλεκηρικών Εγκαηαζηάζεων

H XHMEIA EINAI ΙΑΓΖΗΕ

HY-335 : Δίθηοα Υπμιμγηζηώκ

ΜΑΘΗΜΑ Β 5.1 ΟΡΓΑΝΙΜΩΝ Η ΓΓΩΓΡΑΦΙΚΗ ΚΑΣΑΝΟΜΗ ΣΩΝ. Ελέμη Γ. Παλούμπα, Χημικός, Πειραματικό Γυμμάσιο Σπάρτης

ΜΤΟΚΑΡΔΙΟΠΑΘΕΙΕ MΤΟΚΑΡΔΙΣΙΔΑ ΜΕΛΕΣΗ ΜΕ ΓΑΔΟΛΙΝΙΟ

Ψηφιακός Τόπος Εργασίας Γνγμδόηεξ Πνμζςπηθή Σειίδα Γνγαδόμεκμξ Πνμζςπηθή Σειίδα Μηνύματα Θέση Εργασίας Λαγωνικό Βιογραυικό

GANODERMA LUCIDUM «μακηηάνη ηςκ ζεώκ» Τμ θαζμιηθό θάνμαθμ ηεξ θύζεξ

ΓΑΣΡΟΟΙΟΦΑΓΙΚΗ ΠΑΛΙΝΔΡΟΜΗΗ ΚΑΙ ΑΝΑΠΝΓΤΣΙΚΟ ΤΣΗΜΑ. Δν. Δεμήηνεξ Καπεηάκμξ Γπημειεηήξ A Γαζηνεκηενμιμγηθή Κιηκηθή Γ.Ν. «Γεώνγημξ Παπακηθμιάμο»

Ιαιιηένγεηα βαθηενίςκ

Τα έλη παηδηά γεμίδμοκ με πανά ηηξ θηωπέξ μηθμγέκεηεξ.

Αρηόμξμξι Ποάκηξοεπ ΠΛΗ513- Intelligence Lab. Αμαθξοά Εογαζίαπ Εναμήμξρ

ΜΗΦΑΝΙΚΑ ΚΥΜΑΤΑ. Κύμα μκμμάδεηαη ε δηάδμζε μηαξ δηαηαναπήξ ζημ πώνμ με μνηζμέκε ηαπύηεηα, ε μπμία μκμμάδεηαη ηαςύηηηα διάδξζηπ.

Problems & Questions on MAC Layer

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

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Γοθεμία Παπαδμπμύιμο-Αιαηάθε

Σ Ο Ξ Υ Η Φ Θ Ω Μ Ι Α Α Π Θ Ζ Ξ Λ Ε Μ Ω Μ

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

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

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

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Οι ςδπαςλικέρ κονίερ για σπήζη ζηην οδοποιία και ηο ππόηςπο ΕΝ Δ. Τζαμαηζούληρ Δπ. Φημικόρ Μησανικόρ ΦΑΛΥΧ Δομικά Υλικά Α.Ε.

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

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

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Ιστορία της μετάφρασης

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

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

Εκκλησιαστικό Δίκαιο

Transcript:

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων Ενότητα: Μέθοδος «Διαίρει και Βασίλευε», ταξινόμηση Διδάσκων: Λέκτορας Xάρης Παπαδόπουλος Τμήμα: Μαθηματικών

641: Γηζαγςγή ζηε Θεςνία θαη Ακάιοζε Αιγμνίζμςκ Υάνεξ Παπαδόπμοιμξ

Τιε ημο μαζήμαημξ Βαζηθά ζημηπεία ζπεδίαζεξ & ακάιοζεξ αιγμνίζμςκ Ακάιοζε αιγμνίζμςκ, απμδμηηθόηεηα, αζομπηςηηθόξ ζομβμιηζμόξ οκεζηζμέκμη πνόκμη εθηέιεζεξ θαη βαζηθέξ δμμέξ δεδμμέκςκ πίκαθεξ, ιίζηεξ, ζημίβεξ, μονέξ Γοζηαζέξ ηαίνηαζμα, μνζόηεηα, ζςνόξ θαη μονά πνμηεναηόηεηαξ Ιέζμδμξ «Δηαίνεη θαη Βαζίιεοε» Γθανμμγέξ ζε ηαληκόμεζε ζημηπείςκ Γπίιοζε ακαδνμμηθώκ ζπέζεςκ Γναθήμαηα θαη αιγόνηζμμη γναθεμάηςκ Δηάηνελε γναθεμάηςκ (BFS, DFS) οκεθηηθόηεηα Σμπμιμγηθή δηάηαλε Ιέζμδμη «Απιεζηείαξ» θαη «Δοκαμηθμύ Πνμγναμμαηηζμμύ» Γιάπηζηα ζθειεηηθά δέκδνα (αιγόνηζμμξ Prim, αιγόνηζμμξ Kruskal) οκημμόηενεξ δηαδνμμέξ (αιγόνηζμμξ Dijkstra, Ρμή δηθηύμο) Υνμκμπνμγναμμαηηζμόξ Γπηιεγμέκα ζέμαηα Τπμιμγηζηηθή πμιοπιμθόηεηα, NP-πιενόηεηα 2

Ε Ιέζμδμξ «Δηαίνεη & Βαζίιεοε» (Divide & Conquer)

Δηαίνεη θαη βαζίιεοε H μέζμδμξ «Δηαίνεη θαη βαζίιεοε» Δηαζπάμε ηεκ είζμδμ ζε ανθεηά ημήμαηα μηθνόηενμο μεγέζμοξ. Γπηιύμομε ημ πνόβιεμα ζε θάζε ημήμα ακαδνμμηθά. οκδοάδμομε ηηξ επημένμοξ ιύζεηξ ηςκ οπμπνμβιεμάηςκ ζε μηα ζοκμιηθή ιύζε γηα ημ ανπηθό πνόβιεμα. Γθανμμγή: Σαληκόμεζε n ζημηπείςκ Δηάζπαζε ημο πνμβιήμαημξ μεγέζμοξ n ζε δομ ίζα ημήμαηα μεγέζμοξ ½n. Ακαδνμμηθή επίιοζε ηςκ δύμ ημεμάηςκ. οκδοαζμόξ ηςκ δύμ ιύζεςκ ζε μηα ζοκμιηθή ιύζε ζε γναμμηθό πνόκμ. Απμηέιεζμα: Απιμσθή μέζμδμξ (insertion sort): O(n 2 ) Δηαίνεη θαη βαζίιεοε (mergesort): O(n log n) Divide et impera. Veni, vidi, vici. - Julius Caesar Πνμζθηιήξ πμιεμηθή ηαθηηθή: δηαίνεζε ημο ακηίπαιμο ζηναηεύμαημξ ζε δύμ μηζά θαη επίζεζε ζημ έκα μηζό με μιόθιενμ ημκ ζηναηό ημο. 4

O αιγόνηζμμξ Mergesort

Σαληκόμεζε Δεδμμέκςκ n ζημηπείςκ, δηέηαλέ ηα ζε αύλμοζα ηάλε. Γθανμμγέξ. Σαληκόμεζε μηαξ ιίζηαξ μκμμάηςκ. Ονγάκςζε ηναγμοδηώκ ζημ θηκεηό. Πανμοζίαζε απμηειεζμάηςκ ημο Google PageRank. Θίζηα (RSS) εηδήζεςκ ζε ακηίζηνμθε πνμκμιμγηθή ζεηνά. Πνμθακήξ εθανμμγέξ ηαληκόμεζεξ Γύνεζε ημο μέζμο. Γύνεζε ημο πημ θμκηηκμύ δεύγμοξ. Δοαδηθή ακαδήηεζε. Πνμζδημνηζμόξ ζηαηηζηηθώκ αθναίςκ ηημώκ. Γύνεζε δηπιόηοπςκ ζε μηα ιίζηα μκμμάηςκ. Πνμβιήμαηα πμο ιύκμκηαη πημ εύθμια μεηά ηεκ ηαληκόμεζε ομπίεζε δεδμμέκςκ. Γναθηθά οπμιμγηζηώκ. Τπμιμγηζηηθή βημιμγία. Υνμκμπνμγναμμαηηζμόξ δηαζηεμάηςκ. Ιε-πνμθακήξ εθανμμγέξ Πνμηάζεηξ βηβιίςκ από Amazon. Γληζμννόπεζε θόνημο ενγαζίαξ ζε έκακ πανάιιειμ οπμιμγηζηή.... 6

Ο αιγόνηζμμξ Mergesort Mergesort. Δηαίνεζε ημκ πίκαθα ζηε μέζε. Ακαδνμμηθά ηαληκόμεζε ημ θάζε μηζό ημήμα. ογπώκεοζε ηα δομ μηζά (πμο είκαη πιέμκ ηαληκμμεμέκα) ζε έκακ πιήνε ηαληκμμεμέκμ πίκαθα Jon von Neumann (1945) A L G O R I T H M S A L G O R I T H M S δηαίνεζε O(1) A G L O R H I M S T ηαληκόμεζε 2T(n/2) A G H I L M O R S T ζοκδύαζε O(n) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 7

ογπώκεοζε (merging) ογπώκεοζε. οκδύαζε δομ ήδε ηαληκμμεμέκεξ ιίζηεξ ζε μηα πιήνε ηαληκμμεμέκε ιίζηα. Πώξ ζογπςκεύμομε απμδμηηθά; Γναμμηθόξ ανηζμόξ ζογθνίζεςκ Υνεζημμπμημύμε πνμζςνηκό πίκαθα (μεγέζμοξ n). A G L O R H I M S T A G H I L Πνόθιεζε γηα όζμοξ εκδηαθένμκηαη. Γπη-ηόπμο ζογπώκεοζε [Kronrud, 1969] Υνεζημμπμηώκηαξ μόκμ έκα ζηαζενό μέγεζμξ επηπιέμκ μκήμεξ 8

ογπώκεοζε ογπώκεοζε Παναθμιμύζεζε ημ ειάπηζημ ζημηπείμ ζε θάζε ηαληκμμεμέκμ μηζό Γηζήγαγε ημ ειάπηζημ από ηα δύμ ζημηπεία ζε έκα βμεζεηηθό πίκαθα Γπακέιαβε μέπνη κα ηειεηώζμοκ ηα ζημηπεία ειάπηζημ ειάπηζημ A G L O R H I M S T A Βμεζεηηθόξ πίκαθαξ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 9

ογπώκεοζε ογπώκεοζε Παναθμιμύζεζε ημ ειάπηζημ ζημηπείμ ζε θάζε ηαληκμμεμέκμ μηζό Γηζήγαγε ημ ειάπηζημ από ηα δύμ ζημηπεία ζε έκα βμεζεηηθό πίκαθα Γπακέιαβε μέπνη κα ηειεηώζμοκ ηα ζημηπεία ειάπηζημ ειάπηζημ A G L O R H I M S T A G Βμεζεηηθόξ πίκαθαξ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 10

ογπώκεοζε ογπώκεοζε Παναθμιμύζεζε ημ ειάπηζημ ζημηπείμ ζε θάζε ηαληκμμεμέκμ μηζό Γηζήγαγε ημ ειάπηζημ από ηα δύμ ζημηπεία ζε έκα βμεζεηηθό πίκαθα Γπακέιαβε μέπνη κα ηειεηώζμοκ ηα ζημηπεία ειάπηζημ ειάπηζημ A G L O R H I M S T A G H Βμεζεηηθόξ πίκαθαξ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 11

ογπώκεοζε ογπώκεοζε Παναθμιμύζεζε ημ ειάπηζημ ζημηπείμ ζε θάζε ηαληκμμεμέκμ μηζό Γηζήγαγε ημ ειάπηζημ από ηα δύμ ζημηπεία ζε έκα βμεζεηηθό πίκαθα Γπακέιαβε μέπνη κα ηειεηώζμοκ ηα ζημηπεία ειάπηζημ ειάπηζημ A G L O R H I M S T A G H I Βμεζεηηθόξ πίκαθαξ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 12

ογπώκεοζε ογπώκεοζε Παναθμιμύζεζε ημ ειάπηζημ ζημηπείμ ζε θάζε ηαληκμμεμέκμ μηζό Γηζήγαγε ημ ειάπηζημ από ηα δύμ ζημηπεία ζε έκα βμεζεηηθό πίκαθα Γπακέιαβε μέπνη κα ηειεηώζμοκ ηα ζημηπεία ειάπηζημ ειάπηζημ A G L O R H I M S T A G H I L Βμεζεηηθόξ πίκαθαξ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 13

ογπώκεοζε ογπώκεοζε Παναθμιμύζεζε ημ ειάπηζημ ζημηπείμ ζε θάζε ηαληκμμεμέκμ μηζό Γηζήγαγε ημ ειάπηζημ από ηα δύμ ζημηπεία ζε έκα βμεζεηηθό πίκαθα Γπακέιαβε μέπνη κα ηειεηώζμοκ ηα ζημηπεία ειάπηζημ ειάπηζημ A G L O R H I M S T A G H I L M Βμεζεηηθόξ πίκαθαξ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 14

ογπώκεοζε ογπώκεοζε Παναθμιμύζεζε ημ ειάπηζημ ζημηπείμ ζε θάζε ηαληκμμεμέκμ μηζό Γηζήγαγε ημ ειάπηζημ από ηα δύμ ζημηπεία ζε έκα βμεζεηηθό πίκαθα Γπακέιαβε μέπνη κα ηειεηώζμοκ ηα ζημηπεία ειάπηζημ ειάπηζημ A G L O R H I M S T A G H I L M O Βμεζεηηθόξ πίκαθαξ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 15

ογπώκεοζε ογπώκεοζε Παναθμιμύζεζε ημ ειάπηζημ ζημηπείμ ζε θάζε ηαληκμμεμέκμ μηζό Γηζήγαγε ημ ειάπηζημ από ηα δύμ ζημηπεία ζε έκα βμεζεηηθό πίκαθα Γπακέιαβε μέπνη κα ηειεηώζμοκ ηα ζημηπεία ειάπηζημ ειάπηζημ A G L O R H I M S T A G H I L M O R Βμεζεηηθόξ πίκαθαξ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 16

ογπώκεοζε ογπώκεοζε Παναθμιμύζεζε ημ ειάπηζημ ζημηπείμ ζε θάζε ηαληκμμεμέκμ μηζό Γηζήγαγε ημ ειάπηζημ από ηα δύμ ζημηπεία ζε έκα βμεζεηηθό πίκαθα Γπακέιαβε μέπνη κα ηειεηώζμοκ ηα ζημηπεία πνώημ μηζό ελακηιήζεθε ειάπηζημ A G L O R H I M S T A G H I L M O R S Βμεζεηηθόξ πίκαθαξ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 17

ογπώκεοζε ογπώκεοζε Παναθμιμύζεζε ημ ειάπηζημ ζημηπείμ ζε θάζε ηαληκμμεμέκμ μηζό Γηζήγαγε ημ ειάπηζημ από ηα δύμ ζημηπεία ζε έκα βμεζεηηθό πίκαθα Γπακέιαβε μέπνη κα ηειεηώζμοκ ηα ζημηπεία πνώημ μηζό ελακηιήζεθε ειάπηζημ A G L O R H I M S T A G H I L M O R S T Βμεζεηηθόξ πίκαθαξ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 18

ογπώκεοζε ογπώκεοζε Παναθμιμύζεζε ημ ειάπηζημ ζημηπείμ ζε θάζε ηαληκμμεμέκμ μηζό Γηζήγαγε ημ ειάπηζημ από ηα δύμ ζημηπεία ζε έκα βμεζεηηθό πίκαθα Γπακέιαβε μέπνη κα ηειεηώζμοκ ηα ζημηπεία πνώημ μηζό ελακηιήζεθε δεύηενμ μηζό ελακηιήζεθε A G L O R H I M S T A G H I L M O R S T Βμεζεηηθόξ πίκαθαξ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 19

Γναμμηθόξ πνόκμξ: Ο(n) ογπώκεοζε. ογπςκεύζηε δύμ ηαληκμμεμέκεξ ιίζηεξ A = a 1,a 2,,a n θαη B = b 1,b 2,,b n ζε μηα κέα ηαληκμμεμέκε ιίζηα. i = 1, j = 1 while (οι δςο λίζηερ δεν είναι κένερ) { if (a i b j ) πποζάπηηζε a i ζηη λίζηα εξόδος και αύξηζε i else(a i πποζάπηηζε b j ζηη λίζηα εξόδος και αύξηζε j } πποζάπηηζε ηα ςπόλοιπα ζηοισεία ηηρ μη-κενήρ λίζηαρ ζηην έξοδο Ζζπονηζμόξ. ογπώκεοζε δύμ ιηζηώκ μεγέζμοξ n παίνκεη O(n) πνόκμ. Απόδ. Ιεηά από θάζε ζύγθνηζε, ημ μέγεζμξ ηεξ ελόδμο αολάκεηαη θαηά 1. Υνεώκμομε ημ θόζημξ ζημ ζημηπείμ πμο πνμζζέημομε ζηεκ έλμδμ. 20

Ο αιγόνηζμμξ Mergesort Ακάιοζε Υνμκηθή Πμιοπιμθόηεηαξ Mergesort(A,l,r) { if A έσει μόνο ένα ζηοισείο return ηο μοναδικό ζηοισείο q = (l+n)/2 // διαίπεζε ΑL = Mergesort(A,l,q) ΑR = Mergesort(A,q+1,r) B = Merge(AL,AR) // ζςνδύαζε } Jon von Neumann (1945) A L G O R I T H M S A L G O R I T H M S δηαίνεζε O(1) A G L O R H I M S T ηαληκόμεζε 2T(n/2) A G H I L M O R S T ζοκδύαζε O(n) 21

Ακάιοζε Υνμκηθή Πμιοπιμθόηεηαξ Ακαδνμμηθή πέζε Ονηζμόξ T(n) = Υ.Π. ημο mergesort ζε είζμδμ μεγέζμοξ n. Ακαδνμμηθή πέζε Mergesort. Σ(n) T( n/2 ) + T( n/2 ) + cn, c > 0 ζηαζενά ή απιμύζηενα: Σ(n) 2 T(n/2) + cn, γηα n 2, c > 0 ζηαζενά Σ(n) = 0, γηα n 1 Θύζε. T(n) = O(n log 2 n). 22

Σνόπμη Γπίιοζεξ Ακαδνμμηθώκ πέζεςκ Ιέζμδμη Γπίιοζεξ: Ιέζμδμξ εθδίπιςζεξ ακαδνμμήξ (δέκηνμ ακαδνμμήξ) Γπακαιεπηηθή μέζμδμξ ακάπηολε δηαδνμμήξ Ιέζμδμξ ακηηθαηάζηαζεξ ζςζηήξ πνόβιερεξ Ιέζμδμξ αιιαγήξ μεηαβιεηώκ Βαζηθό Θεώνεμα Ακαδνμμώκ (Ιaster Theorem) Γναμμηθέξ ακαδνμμηθέξ ζπέζεηξ Υνήζημμ θαη ζοκμπηηθό οιηθό με πμιιά παναδείγμαηα (~16 ζειίδεξ) οπάνπεη ζημ ecourse!! 23

Ιέζμδμξ εθδίπιςζεξ ακαδνμμήξ (δέκηνμ ακαδνμμήξ) Σ(n) 2 T(n/2) + cn, γηα n 2, c > 0 ζηαζενά Σ(n) = 0, γηα n 1 T(n) T(n/2) T(n/2) T(n/4) T(n/4) T(n/4) T(n/4) log 2 n T(n / 2 k ) T(2) T(2) T(2) T(2) T(2) T(2) T(2) T(2) 24

Ιέζμδμξ εθδίπιςζεξ ακαδνμμήξ (δέκηνμ ακαδνμμήξ) Σ(n) 2 T(n/2) + cn, γηα n 2, c > 0 ζηαζενά Σ(n) = 0, γηα n 1 cn T(n/2) T(n/2) T(n/4) T(n/4) T(n/4) T(n/4) log 2 n T(n / 2 k ) T(2) T(2) T(2) T(2) T(2) T(2) T(2) T(2) 25

Ιέζμδμξ εθδίπιςζεξ ακαδνμμήξ (δέκηνμ ακαδνμμήξ) Σ(n) 2 T(n/2) + cn, γηα n 2, c > 0 ζηαζενά Σ(n) = 0, γηα n 1 cn cn/2 cn/2 T(n/4) T(n/4) T(n/4) T(n/4) log 2 n T(n / 2 k ) T(2) T(2) T(2) T(2) T(2) T(2) T(2) T(2) 26

Ιέζμδμξ εθδίπιςζεξ ακαδνμμήξ (δέκηνμ ακαδνμμήξ) Σ(n) 2 T(n/2) + cn, γηα n 2, c > 0 ζηαζενά Σ(n) = 0, γηα n 1 cn cn/2 cn/2 cn/4 cn/4 cn/4 cn/4 log 2 n T(n / 2 k ) T(2) T(2) T(2) T(2) T(2) T(2) T(2) T(2) 27

Ιέζμδμξ εθδίπιςζεξ ακαδνμμήξ (δέκηνμ ακαδνμμήξ) Σ(n) 2 T(n/2) + cn, γηα n 2, c > 0 ζηαζενά Σ(n) = 0, γηα n 1 cn cn cn/2 cn/2 2(cn/2) = cn cn/4 cn/4 cn/4 cn/4 log 2 n 4(cn/4) = cn... T(n / 2 k ) 2 k (cn / 2 k ) = cn... 2c 2c 2c 2c 2c 2c 2c 2c n/2 (2c) = cn cn log 2 n 28

Ιέζμδμξ εθδίπιςζεξ ακαδνμμήξ (δέκηνμ ακαδνμμήξ) Σ(n) 2 T(n/2) + cn, γηα n 2, c > 0 ζηαζενά Σ(n) = 0, γηα n 1 cn cn cn/2 cn/2 2(cn/2) = cn cn/4 cn/4 cn/4 cn/4 log 2 n 4(cn/4) = cn... T(n / 2 k ) 2 k (cn / 2 k ) = cn... 2c 2c 2c 2c 2c 2c 2c 2c n/2 (2c) = cn Θύζε. T(n) = O(n log n) cn log 2 n 29

Ιέζμδμξ ακηηθαηάζηαζεξ ζςζηήξ πνόβιερεξ Σ(n) 2T(n/2) + cn, γηα n 2, c > 0 ζηαζενά Σ(n) = 0, γηα n 1 Πνόβιερε: Σ(n) = O(n logn), δειαδή Σ(n) d n logn, d > 0 ζηαζενά Απόδεηλε: (με επαγςγή ζημ n) Βάζε επαγςγήξ (n=1): Σ(1) = 0 d 1 log1 = 0 Γπαγςγηθή οπόζεζε: T(k) d k logk, γηα θάζε k < n Γπαγςγηθό βήμα: Θα δείλμομε όηη Σ(n) d n logn Σ(n) 2 T(n/2) + c n 2 d (n/2) log(n/2) + c n = d n (log n - log 2) + c n = d n (log n - 1) + c n = d n log n - d n + c n d n log n, γηα θάζε d c 30

Ιέζμδμξ ακηηθαηάζηαζεξ ζςζηήξ πνόβιερεξ Σ(n) 2T(n/2) + cn, γηα n 2, c > 0 ζηαζενά Σ(n) = 0, γηα n 1 Πνμζμπή με ημκ πνμζδημνηζμό ηεξ ζηαζενάξ c Πνέπεη κα πνμζδημνηζηεί έηζη ώζηε ε ιύζε Σ(n) d n logn, κα ηζπύεη θαη γηα ηηξ ανπηθέξ ζοκζήθεξ (βάζε επαγςγήξ) Ανπηθή ζοκζήθε Σ(n) = 0 γηα n 1 δεκ πανμοζηάδεη πνόβιεμα, γηαηί Σ(1) = 0 d 1 log1 = 0 γηα θάζε d c > 0 Ακ ε ανπηθή ζοκζήθε ήηακ Σ(n) = 1 γηα n 1 Σ(1) = 1 d 1 log1 = 0 (!!) Δεκ οπάνπεη d πμο κα ηθακμπμηεί ηεκ Σόηε, βιέπμομε ηη γίκεηαη με άιιεξ μηθνέξ ηημέξ ημο n (n=2,3, ) T(2) = 2 + 2c d 2 log2 = 2d, πμο ηζπύεη γηα θάζε d c + 1 Άνα Σ(n) d n logn γηα θάζε n 2 θαη γηα θάζε d c + 1 31

Γπακαιεπηηθή Ιέζμδμξ ακάπηολε ακαδνμμήξ Σ(n) 2T(n/2) + cn, γηα n 2, c > 0 ζηαζενά Σ(n) = 0, γηα n 1 Ακάπηολε ακαδνμμήξ: 32

Γπακαιεπηηθή Ιέζμδμξ ακάπηολε ακαδνμμήξ Σ(n) 2T(n/2) + cn, γηα n 2, c > 0 ζηαζενά Σ(n) = 0, γηα n 1 Πμιιαπιαζηάδμομε θάζε ακηζόηεηα με 2 k θαη πνμζζέημομε: 33

οκδοαζμόξ δέκδνμο ακαδνμμήξ θαη ζςζηήξ πνόβιερεξ Σ(n) = T(n/3) + T(2n/3) + c n, γηα n 2 Σ(n) = O(1), γηα n 1 Ιέγεζμξ μέγηζημο οπμπνμβιήμαημξ επηπέδμο i: n(2/3) i Ύρμξ h δέκδνμο ακαδνμμήξ : n (2/3) h = 1, δειαδή h = log 3/2 n Πνόβιερε: Σ(n) = O(n log n) 34

οκδοαζμόξ δέκδνμο ακαδνμμήξ θαη ζςζηήξ πνόβιερεξ Σ(n) = T(n/3) + T(2n/3) + c n, γηα n 2 Σ(n) = O(1), γηα n 1 Ιέγεζμξ μέγηζημο οπμπνμβιήμαημξ επηπέδμο i: n(2/3) i Ύρμξ h δέκδνμο ακαδνμμήξ : n (2/3) h = 1, δειαδή h = log 3/2 n Πνόβιερε: Σ(n) = O(n log n) Απόδεηλε: (με επαγςγή ζημ n) Σ(n) d n log n, γηα θάπμηα ζηαζενά d > 0 πμο ηζπύεη γηα d c / (log 3 2/3) 35

Ιέζμδμξ αιιαγήξ μεηαβιεηώκ Σ(n) = 2 T( n ) + log n, γηα n 2 Σ(n) = O(1), γηα n 1 Θέημομε m = log n, άνα n = 2 m θαη n = 2 m/2 : T(2 m ) = 2 T(2 m/2 ) + m Θέημκηαξ S(m) = T(2 m ) έπμομε, S(m) = 2 S(m/2) + m Πμο γκςνίδμομε όηη S(m) = O(m log m) Σ(n) 2T(n/2) + cn T(n) = O(n log n) Άνα, Σ(n) = T(2m) = S(m) = O(m log m) = O(log n log log n) 36

Βαζηθό Θεώνεμα Ακαδνμμώκ (Ιaster Theorem) Έζης: θαη θαη Σόηε, Φαίκεηαη πμιύπιμθμ αιιά ηειηθά είκαη πμιύ απιό. Οη ιύζεηξ πενηγνάθμκηαη από ημκ ηύπμ: 37

Βαζηθό Θεώνεμα Ακαδνμμώκ (Ιaster Theorem) Σ(n) = 16 T( n / 8 ) + n 2/3 α = 16, β = 8, γ = 2/3, δ = 0 Γλεηάδμομε: α / β γ = 16 / 8 2/3 > 1 Άνα 1 ε πενίπηςζε: 38

Βαζηθό Θεώνεμα Ακαδνμμώκ (Ιaster Theorem) Σ(n) = T( 2n / 3 ) + 1 α = 1, β = 3/2, γ = 0, δ = 0 Γλεηάδμομε: α / β γ = 1 / (3/2) 0 = 1 Άνα 2 ε πενίπηςζε: 39

Βαζηθό Θεώνεμα Ακαδνμμώκ (Ιaster Theorem) Σ( n 2 ) = 3T( n 2 / 3 ) + n 40

Βαζηθό Θεώνεμα Ακαδνμμώκ (Ιaster Theorem) n 2 = m Σ( n 2 ) = 3T( n 2 / 3 ) + n Σ( m ) = 3T( m / 3 ) + m 41

Βαζηθό Θεώνεμα Ακαδνμμώκ (Ιaster Theorem) n 2 = m Σ( n 2 ) = 3T( n 2 / 3 ) + n Σ( m ) = 3T( m / 3 ) + m α = 3, β = 3, γ = 1/2, δ = 0 Γλεηάδμομε: α / β γ = 3 / 3 1/2 = 3 1/2 > 1 Άνα 1 ε πενίπηςζε: 42

Γναμμηθέξ Ακαδνμμηθέξ πέζεηξ Ε γναμμηθή ακαδνμμηθή ζπέζε ηάλεξ d έπεη ηεκ μμνθή: Σ(n) = a 1 T(n-1) + a 2 T(n-2) + + a d T(n-d) Πανάδεηγμα: ε Fibonacci αθμιμοζία: Σ(n) = T(n-1) + T(n-2) Σ(1) = 1 Σ(0) = 0 Πενηγναθή ηεξ ιύζεξ: Σ(n) = c x n Πανάδεηγμα: Άνα: cx n = cx n-1 + cx n-2 x 2 x -1 = 0 x = (1 5)/2 T(n) = c 1 [(1+ 5)/2] n + c 2 [(1-5)/2] n Σηξ ζηαζενέξ c 1 θαη c 2 ηηξ θαζμνίδμομε από ηηξ ανπηθέξ ζοκζήθεξ Σ(1) = 1, Σ(0) = 0: Γναμμηθό ζύζηεμα 2 εληζώζεςκ με 2 αγκώζημοξ 43

Γναμμηθέξ Ακαδνμμηθέξ πέζεηξ Ε γναμμηθή ακαδνμμηθή ζπέζε ηάλεξ d έπεη ηεκ μμνθή: Σ(n) = a 1 T(n-1) + a 2 T(n-2) + + a d T(n-d) Υαναθηενηζηηθή Γλίζςζε ηάλεξ d: x d = a 1 x d-1 + a 2 x d-2 + + a d x 0 Θύζε: Πνμθύπηεη από ηηξ νίδεξ ηεξ παναθηενηζηηθήξ ελίζςζεξ. Ακ r νίδα με πμιιαπιόηεηα 1 ηόηε: r n Ακ r νίδα με πμιιαπιόηεηα k ηόηε: r n, nr n, n 2 r n,, n k r n Πανάδεηγμα: T(n) = 2T(n-1) T(n-2), T(0) =0, T(1) =1 X.E.: x 2 2x -1 = 0 με δηπιή νίδα ημ x = 1 T(n) = c 1 (1) n + c 2 n (1) n = c 1 + c 2 n Από ανπηθέξ ζοκζήθεξ: c 1 = 0 θαη c 2 = 1 Σ(n) = n 44

Θίγα παναπάκς γηα Σαληκμμήζεηξ Insertion sort Ο(n 2 ) Counting sort Ο(n + n k ) Radix sort Ο(n k) Ηάης θνάγμα Ω(n log n)

Αιγόνηζμμη Σαληκόμεζεξ Ιειεηήζαμε ημοξ ελήξ αιγμνίζμμοξ: Mergesort - Ο(nlog n) Heapsort - Ο(nlog n) Θα δμύμε: Insertion sort - Ο(n 2 ) Counting sort - Ο(n + n k ) Radix sort - Ο(n k) Τπάνπμοκ επίζεξ: Bubble sort - Ο(n 2 ) Selection sort - Ο(n 2 ) Quick sort - Θ(n 2 ) (θαιύηενε μέζε πενίπηςζε) Bucket sort - Ο(n), i (0,1] 46

Insertion sort Insertion_sort(A,n) { for j = 2 to n ειζαγυγή ηος A[j] ζηον (ήδη ηαξινομημένο) ςποπίνακα Α[1,..,j-1] με ζςνεσόμενερ ανηιμεηαθέζειρ μέσπι ηο ζυζηό ζημείο } A: 1 i j n A[1] < A[2] < < A[j-1] ηαληκμμεμέκμξ οπμπίκαθαξ ζςζηή ζέζε γηα ημ Α[j] 47

Insertion sort Insertion_sort(A,n) { for j = 2 to n ειζαγυγή ηος A[j] ζηον (ήδη ηαξινομημένο) ςποπίνακα Α[1,..,j-1] με ζςνεσόμενερ ανηιμεηαθέζειρ μέσπι ηο ζυζηό ζημείο } Πανάδεηγμα: 8 2 4 9 3 6 A: 1 i j n A[1] < A[2] < < A[j-1] ηαληκμμεμέκμξ οπμπίκαθαξ ζςζηή ζέζε γηα ημ Α[j] 48

Insertion sort Insertion_sort(A,n) { for j = 2 to n ειζαγυγή ηος A[j] ζηον (ήδη ηαξινομημένο) ςποπίνακα Α[1,..,j-1] με ζςνεσόμενερ ανηιμεηαθέζειρ μέσπι ηο ζυζηό ζημείο } Υνόκμξ εθηέιεζεξ: Υεηνόηενε πενίπηςζε: Α[] = [n, n-1, n-2,, 1] 49

Counting sort ηόπμξ: γναμμηθή ηαληκόμεζε Έζης μη n αθέναημη ημο πίκαθα Α[] ακήθμοκ ζημ δηάζηεμα [1,,n k ] n k : έκαξ ζεηηθόξ αθέναημξ Υνόκμξ: O(n + n k ), γναμμηθόξ όηακ n k = O(n) Βαζηθή ηδέα: Γηα θάζε ζημηπείμ A[j], θαζμνηζμόξ ημο πιήζμοξ ηςκ ζημηπείςκ πμο είκαη μηθνόηενα από A[j]. Π.π. ακ οπάνπμοκ 17 ζημηπεία < A[j], ηόηε A[j] = 18 ε ζέζε Θα πνεηαζημύμε δομ επηπιέμκ πίκαθεξ: Β[1..n]: απμζήθεοζε ηαληκμμεμέκεξ αθμιμοζίαξ (απμηέιεζμα) C[0..n k ]: πνμζςνηκή θαηαπώνεζε πιενμθμνηώκ 50

Counting sort Counting_sort(A,n,n k ) { for j = 1 to n C[A[j]] = C[A[j]] + 1 for i = 1 to n k C[i] = C[i] + C[i-1] for j = n downto 1 B[ C[A[j]] ] = A[j] C[A[j]] = C[A[j]] - 1 } C[i] = # ζηοισεία ίζα με i C[i] = # ζηοισεία < ή ίζα με i 1 2 3 4 5 6 7 8 Α: 2 5 3 0 2 3 0 3 51

Counting sort Counting_sort(A,n,n k ) { for j = 1 to n C[A[j]] = C[A[j]] + 1 for i = 1 to n k C[i] = C[i] + C[i-1] for j = n downto 1 B[ C[A[j]] ] = A[j] C[A[j]] = C[A[j]] - 1 } C[i] = # ζηοισεία ίζα με i C[i] = # ζηοισεία < ή ίζα με i 1 2 3 4 5 6 7 8 Α: 2 5 3 0 2 3 0 3 n k = 5 0 1 2 3 4 5 C: 2 0 2 3 0 1 52

Counting sort Counting_sort(A,n,n k ) { for j = 1 to n C[A[j]] = C[A[j]] + 1 for i = 1 to n k C[i] = C[i] + C[i-1] for j = n downto 1 B[ C[A[j]] ] = A[j] C[A[j]] = C[A[j]] - 1 } C[i] = # ζηοισεία ίζα με i C[i] = # ζηοισεία < ή ίζα με i 1 2 3 4 5 6 7 8 Α: 2 5 3 0 2 3 0 3 n k = 5 0 1 2 3 4 5 C: 2 2 4 7 7 8 C[i] = # ζηοισεία < ή ίζα με i 53

Counting sort Counting_sort(A,n,n k ) { for j = 1 to n C[A[j]] = C[A[j]] + 1 for i = 1 to n k C[i] = C[i] + C[i-1] for j = n downto 1 B[ C[A[j]] ] = A[j] C[A[j]] = C[A[j]] - 1 } C[i] = # ζηοισεία ίζα με i C[i] = # ζηοισεία < ή ίζα με i 1 2 3 4 5 6 7 8 Α: 2 5 3 0 2 3 0 3 n k = 5 0 1 2 3 4 5 C: 2 2 4 7 7 8 C[i] = # ζηοισεία < ή ίζα με i 1 2 3 4 5 6 7 8 B: 3 54

Counting sort Counting_sort(A,n,n k ) { for j = 1 to n C[A[j]] = C[A[j]] + 1 for i = 1 to n k C[i] = C[i] + C[i-1] for j = n downto 1 B[ C[A[j]] ] = A[j] C[A[j]] = C[A[j]] - 1 } C[i] = # ζηοισεία ίζα με i C[i] = # ζηοισεία < ή ίζα με i 1 2 3 4 5 6 7 8 Α: 2 5 3 0 2 3 0 3 n k = 5 0 1 2 3 4 5 C: 2 2 4 6 7 8 C[i] = # ζηοισεία < ή ίζα με i 1 2 3 4 5 6 7 8 B: 3 55

Counting sort Counting_sort(A,n,n k ) { for j = 1 to n C[A[j]] = C[A[j]] + 1 for i = 1 to n k C[i] = C[i] + C[i-1] for j = n downto 1 B[ C[A[j]] ] = A[j] C[A[j]] = C[A[j]] - 1 } C[i] = # ζηοισεία ίζα με i C[i] = # ζηοισεία < ή ίζα με i 1 2 3 4 5 6 7 8 Α: 2 5 3 0 2 3 0 3 n k = 5 0 1 2 3 4 5 C: 2 2 4 6 7 8 C[i] = # ζηοισεία < ή ίζα με i 1 2 3 4 5 6 7 8 B: 0 3 56

Counting sort Counting_sort(A,n,n k ) { for j = 1 to n C[A[j]] = C[A[j]] + 1 for i = 1 to n k C[i] = C[i] + C[i-1] for j = n downto 1 B[ C[A[j]] ] = A[j] C[A[j]] = C[A[j]] - 1 } C[i] = # ζηοισεία ίζα με i C[i] = # ζηοισεία < ή ίζα με i 1 2 3 4 5 6 7 8 Α: 2 5 3 0 2 3 0 3 n k = 5 0 1 2 3 4 5 C: 1 2 4 6 7 8 C[i] = # ζηοισεία < ή ίζα με i 1 2 3 4 5 6 7 8 B: 0 3 57

Counting sort Counting_sort(A,n,n k ) { for j = 1 to n C[A[j]] = C[A[j]] + 1 for i = 1 to n k C[i] = C[i] + C[i-1] for j = n downto 1 B[ C[A[j]] ] = A[j] C[A[j]] = C[A[j]] - 1 } C[i] = # ζηοισεία ίζα με i C[i] = # ζηοισεία < ή ίζα με i 1 2 3 4 5 6 7 8 Α: 2 5 3 0 2 3 0 3 n k = 5 0 1 2 3 4 5 C: 0 2 3 5 7 8 C[i] = # ζηοισεία < ή ίζα με i 1 2 3 4 5 6 7 8 B: 0 0 2 2 3 3 3 5 58

Counting sort Counting_sort(A,n,n k ) { for j = 1 to n C[A[j]] = C[A[j]] + 1 for i = 1 to n k C[i] = C[i] + C[i-1] for j = n downto 1 B[ C[A[j]] ] = A[j] C[A[j]] = C[A[j]] - 1 } C[i] = # ζηοισεία ίζα με i C[i] = # ζηοισεία < ή ίζα με i Υνόκμξ εθηέιεζεξ: T(n) = c 1 n + c 2 n k + c 3 n = Θ( n + n k ) Ακ n k = O(n) Θ( n ) 59

Counting sort Counting_sort(A,n,n k ) { for j = 1 to n C[A[j]] = C[A[j]] + 1 for i = 1 to n k C[i] = C[i] + C[i-1] for j = n downto 1 B[ C[A[j]] ] = A[j] C[A[j]] = C[A[j]] - 1 } C[i] = # ζηοισεία ίζα με i C[i] = # ζηοισεία < ή ίζα με i Υνόκμξ εθηέιεζεξ: T(n) = c 1 n + c 2 n k + c 3 n = Θ( n + n k ) Ακ n k = O(n) Θ( n ) Ακ n k = O( n d )?? 60

Radix sort Έζης θάζε αθέναημξ ημο πίκαθα Α[] έπεη k ρεθία Φεθίμ θάζε Α[i] {0,1,, 9} (1) Σαληκόμεζε ςξ πνμξ ημ πημ δελί ρεθίμ (i) (k) Σαληκόμεζε ςξ πνμξ ημ πημ ανηζηενό ρεθίμ k ηαληκμμήζεηξ Counting sort Ε ηαληκόμεζε θναηάεη ηεκ ζπεηηθή δηάηαλε ηςκ ζημηπείςκ 3 2 9 7 2 0 7 2 0 3 2 9 4 5 7 3 5 5 3 2 9 3 5 5 6 5 7 8 3 9 4 3 6 4 5 7 4 3 6 8 3 9 4 3 6 4 5 7 4 3 6 6 5 7 3 5 5 6 5 7 7 2 0 3 2 9 4 5 7 7 2 0 3 5 5 8 3 9 6 5 7 8 3 9 61

Radix sort Έζης θάζε αθέναημξ ημο πίκαθα Α[] έπεη k ρεθία Φεθίμ θάζε Α[i] {0,1,, 9} Θ(n + 10) θάζε ηαληκόμεζε Counting Sort k ρεθία: Θ(n k) k = log 10 (A[i]). Ακ Α[i] = n d = 10 d ηόηε (γηα n > 10): Θ( n log 10 (10 d ) ) = Θ( n d ) = Θ( n ) 3 2 9 7 2 0 7 2 0 3 2 9 4 5 7 3 5 5 3 2 9 3 5 5 6 5 7 8 3 9 4 3 6 4 5 7 4 3 6 8 3 9 4 3 6 4 5 7 4 3 6 6 5 7 3 5 5 6 5 7 7 2 0 3 2 9 4 5 7 7 2 0 3 5 5 8 3 9 6 5 7 8 3 9 62

Ηάης Φνάγμαηα Ω() ζε Ακαδεηήζεηξ θαη Σαληκμμήζεηξ Ακαδήηεζε απαηηεί Ω(log n) πνόκμ Ε δοαδηθή ακαδήηεζε είκαη βέιηηζηε Σαληκόμεζε απαηηεί Ω(n log n) πνόκμ Mergesort θαη Heapsort είκαη βέιηηζημη Ιμκηέιμ οπμιμγηζμμύ ζογθνίζεςκ: Γίζμδμξ μεγέζμοξ n : θάζε ζημηπείμ Α[i] είκαη έκα μαύνμ θμοηί Τπμζηενίδεη μόκμ ζογθνίζεηξ (<, >,,, =,!=) Γηα ιόγμοξ απιόηεηαξ ζεςνμύμε όηη Α[i]!= A[j] Οπόηε έπμομε βαζηθέξ ζογθνίζεηξ <, >,, Υνόκμξ εθηέιεζεξ = πιήζμξ ζογθνίζεςκ 63

Ηάης Φνάγμαηα Ω() ζε Ακαδεηήζεηξ θαη Σαληκμμήζεηξ Δέκδνμ απμθάζεςκ Ηάζε αιγόνηζμμξ ζογθνίζεςκ μπμνεί κα ζεςνεζεί ςξ έκα δέκδνμ με όιεξ ηηξ ακηίζημηπεξ ζογθνίζεηξ πμο ακαιμγμύκ ζε θάζε δοκαηή έλμδμ Πανάδεηγμα γηα n=3, A[1], A[2], A[3]: A[1] < x? μπη καη A[0] < x? A[2] < x? μπη καη μπη καη x A[0] A[0] < x A[1] A[1] < x A[2] A[2] < x Γζςηενηθόξ θόμβμξ δέκηνμο = δοαδηθή ζύγθνηζε Φύιια = έλμδμξ ημο αιγμνίζμμο Ιμκμπάηη από ηεκ νίδα ζε θύιιμ = μηα εθηέιεζε ημο αιγμνίζμμο Ιήθμξ ημο μμκμπαηημύ = πνόκμξ εθηέιεζεξ Ύρμξ ημο δέκδνμο (μέγηζημ μήθμξ) = πνόκμξ πεηνόηενεξ πενίπηςζεξ 64

Ηάης Φνάγμαηα Ω() ζε Ακαδεηήζεηξ θαη Σαληκμμήζεηξ Ηάης θνάγμα ακαδήηεζεξ: Ηάζε αιγόνηζμμξ ακαδήηεζεξ απαηηεί Ω(log n) πνόκμ # θύιιςκ # δοκαηέξ ελόδμοξ n ζημηπείa (1 ζύγθνηζε γηα θάζε Α[i]) Δέκδνμ απμθάζεςκ = δοαδηθό Ύρμξ ημο δέκδνμο (μέγηζημ μήθμξ) log (n) A[1] < x? μπη καη A[0] < x? A[2] < x? log 2 n μπη καη μπη καη x A[0] A[0] < x A[1] A[1] < x A[2] A[2] < x 65

Ηάης Φνάγμαηα Ω() ζε Ακαδεηήζεηξ θαη Σαληκμμήζεηξ Ηάης θνάγμα ηαληκόμεζεξ: Ηάζε αιγόνηζμμξ ηαληκόμεζεξ απαηηεί Ω(n log n) πνόκμ Φύιια: απακηάεη με μηα μεηάζεζε Α[3] < Α[1] < Α[9] <. Όιεξ μη δοκαηέξ απακηήζεηξ: n! μη δοκαηέξ μεηαζέζεηξ 012, 021, 102, # θύιιςκ = n! ύρμξ log (n!) log (n/e) n = nlog n nlog e = Ω(n log n) Σύπμξ ημο Stirling A[0] < A[1]? μπη καη A[2] < A[1]? A[1] < A[2]? μπη καη μπη καη log 2 n! A[2] < A[0]? A[2]<A[1]<A[0] A[0] < A[2]? A[0]<A[1]<A[2] μπη καη μπη καη A[1]<A[0]<A[2] A[1]<A[2]<A[0] A[2]<A[0]<A[1] A[0]<A[2]<A[1] 66

Ιέηνεζε Ακηηζηνμθώκ

Ιέηνεζε Ακηηζηνμθώκ Ιηα ηζημζειίδα μμοζηθήξ πνμζπαζεί κα ηαηνηάλεη ηηξ πνμηημήζεηξ ζαξ ζηα ηναγμύδηα με άιιμοξ. Γζείξ βαζμμιμγείηε n ηναγμύδηα. Ε ζειίδα ζομβμοιεύεηαη μηα βάζε δεδμμέκςκ γηα κα βνεη άημμα με παναπιήζηεξ πνμηημήζεηξ. Ιεηνηθή μμμηόηεηαξ: πιήζμξ ακηηζηνμθώκ μεηαλύ δύμ βαζμμιμγηώκ. Ε βαζμμιμγία μμο: 1, 2,, n. Ε βαζμμιμγία ζμο: a 1, a 2,, a n. Σα ηναγμύδηα i θαη j ακηηζηνέθμκηαη ακ i < j, αιιά a i > a j. Σναγμύδηα Γγώ Γζύ A B C D E 1 2 3 4 5 1 3 4 2 5 Ακηηζηνμθέξ 3-2, 4-2 Ωμή βία: έιεγλε όια ηα (n 2 ) δεογάνηα i θαη j. 68

Γθανμμγέξ Γθανμμγέξ. Θεςνία ρεθμθμνίαξ οκενγαηηθό «θηιηνάνηζμα» Ιέηνεζε ημο ηαληκμμεμέκμο πμζμζημύ εκόξ πίκαθα Ακάιοζε ηεξ εοαηζζεζίαξ ηεξ ζοκ/ζεξ θαηάηαλεξ ηεξ Google Ιε-παναμεηνηθά ζηαηηζηηθά (π.π. ε απόζηαζε θαηά Kendall Tau). 69

Ιέηνεζε Ακηηζηνμθώκ: Δηαίνεη θαη βαζίιεοε Δηαίνεη θαη βαζίιεοε. 1 5 4 8 10 2 6 9 12 11 3 7 70

Ιέηνεζε Ακηηζηνμθώκ: Δηαίνεη θαη βαζίιεοε Δηαίνεη θαη βαζίιεοε. Δηαίνεζε: δηαπώνηζε ηεκ ιίζηα ζε δύμ ημήμαηα. 1 5 4 8 10 2 6 9 12 11 3 7 Δηαίνεη: O(1). 1 5 4 8 10 2 6 9 12 11 3 7 71

Ιέηνεζε Ακηηζηνμθώκ: Δηαίνεη θαη βαζίιεοε Δηαίνεη θαη βαζίιεοε. Δηαίνεζε: δηαπώνηζε ηεκ ιίζηα ζε δύμ ημήμαηα. Βαζίιεοε: ακαδνμμηθά μέηνεζε ηηξ ακηηζηνμθέξ ζε θάζε μηζό 1 5 4 8 10 2 6 9 12 11 3 7 Δηαίνεη: O(1). 1 5 4 8 10 2 6 9 12 11 3 7 Βαζίιεοε: 2T(n / 2) 5 ακηηζηνμθέξ μπιε-με-μπιε 8 ακηηζηνμθέξ πνάζηκμ-με-πνάζηκμ 5-4, 5-2, 4-2, 8-2, 10-2 6-3, 9-3, 9-7, 12-3, 12-7, 12-11, 11-3, 11-7 72

Ιέηνεζε Ακηηζηνμθώκ: Δηαίνεη θαη βαζίιεοε Δηαίνεη θαη βαζίιεοε. Δηαίνεζε: δηαπώνηζε ηεκ ιίζηα ζε δύμ ημήμαηα. Βαζίιεοε: ακαδνμμηθά μέηνεζε ηηξ ακηηζηνμθέξ ζε θάζε μηζό οκδύαζε: μέηνα ακηηζηνμθέξ όπμο a i θαη a j βνίζθμκηαη ζε δηαθμνεηηθά μηζά ημήμαηα, θαη επέζηνερε ημ άζνμηζμα ηςκ 3 πμζμηήηςκ. 1 5 4 8 10 2 6 9 12 11 3 7 Δηαίνεη: O(1). 1 5 4 8 10 2 6 9 12 11 3 7 Βαζίιεοε: 2T(n / 2) 5 ακηηζηνμθέξ μπιε-με-μπιε 8 ακηηζηνμθέξ πνάζηκμ-με-πνάζηκμ 9 ακηηζηνμθέξ μπιε-με-πνάζηκμ 5-3, 4-3, 8-6, 8-3, 8-7, 10-6, 10-9, 10-3, 10-7 οκδύαζε:??? ύκμιμ = 5 + 8 + 9 = 22. 73

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. δηαηήνεζε ηεξ αύλμοζαξ ηάλεξ 3 7 10 14 18 19 2 11 16 17 23 25 6 3 2 2 0 0 13 ακηηζηνμθέξ μπιε-με-πνάζηκμ: 6 + 3 + 2 + 2 + 0 + 0 Ιέηνεζε: O(n) 2 3 7 10 11 14 16 17 18 19 23 25 ογπώκεοζε: O(n) T(n) T n/2 T n/2 O(n) T(n) O(nlogn) 74

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. δηαηήνεζε ηεξ αύλμοζαξ ηάλεξ b j < a i b j μηθνόηενμ από όια ηα a i, a i+1,, a n = # ακηηζηνμθέξ ημο b j T(n) T n/2 T n/2 O(n) T(n) O(nlogn) 75

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. 3 7 10 14 18 19 2 11 16 17 23 25 δύμ ηαληκμμεμέκα μηζά βμεζεηηθόξ πίκαθαξ ύκμιμ: 76

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 6 3 7 10 14 18 19 2 11 16 17 23 25 6 δύμ ηαληκμμεμέκα μηζά 2 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 77

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 6 3 7 10 14 18 19 2 11 16 17 23 25 6 δύμ ηαληκμμεμέκα μηζά 2 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 78

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 6 3 7 10 14 18 19 2 11 16 17 23 25 6 δύμ ηαληκμμεμέκα μηζά 2 3 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 79

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 5 3 7 10 14 18 19 2 11 16 17 23 25 6 δύμ ηαληκμμεμέκα μηζά 2 3 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 80

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 5 3 7 10 14 18 19 2 11 16 17 23 25 6 δύμ ηαληκμμεμέκα μηζά 2 3 7 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 81

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 4 3 7 10 14 18 19 2 11 16 17 23 25 6 δύμ ηαληκμμεμέκα μηζά 2 3 7 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 82

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 4 3 7 10 14 18 19 2 11 16 17 23 25 6 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 83

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 3 3 7 10 14 18 19 2 11 16 17 23 25 6 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 84

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 3 3 7 10 14 18 19 2 11 16 17 23 25 6 3 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 11 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 + 3 85

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 3 3 7 10 14 18 19 2 11 16 17 23 25 6 3 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 11 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 + 3 86

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 3 3 7 10 14 18 19 2 11 16 17 23 25 6 3 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 11 14 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 + 3 87

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 2 3 7 10 14 18 19 2 11 16 17 23 25 6 3 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 11 14 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 + 3 88

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 2 3 7 10 14 18 19 2 11 16 17 23 25 6 3 2 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 11 14 16 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 + 3 + 2 89

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 2 3 7 10 14 18 19 2 11 16 17 23 25 6 3 2 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 11 14 16 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 + 3 + 2 90

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 2 3 7 10 14 18 19 2 11 16 17 23 25 6 3 2 2 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 11 14 16 17 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 + 3 + 2 + 2 91

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 2 3 7 10 14 18 19 2 11 16 17 23 25 6 3 2 2 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 11 14 16 17 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 + 3 + 2 + 2 92

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 2 3 7 10 14 18 19 2 11 16 17 23 25 6 3 2 2 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 11 14 16 17 18 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 + 3 + 2 + 2 93

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 1 3 7 10 14 18 19 2 11 16 17 23 25 6 3 2 2 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 11 14 16 17 18 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 + 3 + 2 + 2 94

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 1 3 7 10 14 18 19 2 11 16 17 23 25 6 3 2 2 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 11 14 16 17 18 19 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 + 3 + 2 + 2 95

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. Γλακηιήζεθε ημ πνώημ μηζό i = 0 3 7 10 14 18 19 2 11 16 17 23 25 6 3 2 2 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 11 14 16 17 18 19 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 + 3 + 2 + 2 96

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 0 3 7 10 14 18 19 2 11 16 17 23 25 6 3 2 2 0 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 11 14 16 17 18 19 23 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 + 3 + 2 + 2 + 0 97

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 0 3 7 10 14 18 19 2 11 16 17 23 25 6 3 2 2 0 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 11 14 16 17 18 19 23 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 + 3 + 2 + 2 + 0 98

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 0 3 7 10 14 18 19 2 11 16 17 23 25 6 3 2 2 0 0 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 11 14 16 17 18 19 23 25 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 + 3 + 2 + 2 + 0 + 0 99

Ιέηνεζε Ακηηζηνμθώκ: οκδύαζε οκδύαζε: μέηνεζε ηςκ ακηηζηνμθώκ μπιε-με-πνάζηκμ Τπμζέημομε όηη θάζε μηζό είκαη ηαληκμμεμέκμ Ιέηνεζε ηηξ ακηηζηνμθέξ με a i θαη a j ζε δηαθμνεηηθά μηζά. ογπώκεοζε ηα δύμ ηαληκμμεμέκα μηζά ζε έκα ηαληκμμεμέκμ πίκαθα. i = 0 3 7 10 14 18 19 2 11 16 17 23 25 6 3 2 2 0 0 δύμ ηαληκμμεμέκα μηζά 2 3 7 10 11 14 16 17 18 19 23 25 βμεζεηηθόξ πίκαθαξ ύκμιμ: 6 + 3 + 2 + 2 + 0 + 0 = 13 100

Ιέηνεζε Ακηηζηνμθώκ: Τιμπμίεζε Πνμ-ζοκζήθε. [Merge-and-Count] A θαη B ηαληκμμεμέκα. Σειηθή θαηάζηαζε. [Sort-and-Count] L ηαληκμμεμέκε. Sort-and-Count(L) { if η λίζηα L έσει μόνο ένα ζηοισείο return 0 και ηην λίζηα L Διαίπεζε ηην λίζηα ζε δςο μιζά A και B (r A, A) Sort-and-Count(A) (r B, B) Sort-and-Count(B) (r B, L) Merge-and-Count(A, B) } return r = r A + r B + r και ηην ηαξινομημένη λίζηα L T(n) T n/2 T n/2 O(n) T(n) O(nlogn) 101

Πιεζηέζηενμ Δεύγμξ εμείςκ

Πιεζηέζηενμ Δεύγμξ εμείςκ Πιεζηέζηενμ δεύγμξ. Δμζέκημξ n ζεμείςκ ζημ επίπεδμ, εύνεζε ημο δεύγμοξ με ηεκ μηθνόηενε Γοθιείδεηα απόζηαζε. Θεμειηώδεξ γεςμεηνηθή ηδηόηεηα. Γναθηθά, γεςγναθηθά ζοζηήμαηα πιενμθόνεζεξ (GIS), μμκηειμπμίεζε μμνίςκ, έιεγπμξ εκαένηαξ θοθιμθμνίαξ. Γηδηθή πενίπηςζε ημο θμκηηκόηενμο γείημκα, Γοθιείδεημ ΓΔ. Γνήγμνμη αιγόνηζμμη γηα ηα πνμβιήμαηα αοηά εμπκεύζηεθακ από ημ γνήγμνμ αιγόνηζμμ γηα ημ πιεζηέζηενμ δεύγμξ Ωμή Βία. Έιεγλε όια ηα δεύγε ζεμείςκ p θαη q με (n 2 ) ζογθνίζεηξ. 1-D εθδμπή. O(n log n) εύθμια ακ ηα ζεμεία βνίζθμκηαη ζε μηα εοζεία. Τπόζεζε. Δεκ οπάνπμοκ δομ ζεμεία με ηεκ ίδηα x ζοκηεηαγμέκε. Γηα ιόγμοξ απιόηεηαξ ηεξ πανμοζίαζεξ 103

Πιεζηέζηενμ Δεύγμξ εμείςκ: Πνώηε Πνμζπάζεηα Δηαίνεζε. Τπμ-δηαίνεζε ηεκ πενημπή ζε 4 ηεηανηεμόνηα. L 104

Πιεζηέζηενμ Δεύγμξ εμείςκ: Πνώηε Πνμζπάζεηα Δηαίνεζε. Τπμ-δηαίνεζε ηεκ πενημπή ζε 4 ηεηανηεμόνηα. Γμπόδημ. Αδύκαημ κα ελαζθαιίζεηξ n/4 ζεμεία ζε θάζε ημήμα. L 105

Πιεζηέζηενμ Δεύγμξ εμείςκ Αιγόνηζμμξ. Δηαίνεζε: θένε θάζεηε εοζεία L έηζη ώζηε ~½n ζεμεία ζε θάζε ημήμα L 106

Πιεζηέζηενμ Δεύγμξ εμείςκ Αιγόνηζμμξ. Δηαίνεζε: θένε θάζεηε εοζεία L έηζη ώζηε ~½n ζεμεία ζε θάζε ημήμα Βαζίιεοε: εύνεζε πιεζηέζηενμο δεύγμοξ ζε θάζε ημήμα ακαδνμμηθά. L 21 12 107

Πιεζηέζηενμ Δεύγμξ εμείςκ Αιγόνηζμμξ. Δηαίνεζε: θένε θάζεηε εοζεία L έηζη ώζηε ~½n ζεμεία ζε θάζε ημήμα Βαζίιεοε: εύνεζε πιεζηέζηενμο δεύγμοξ ζε θάζε ημήμα ακαδνμμηθά. οκδύαζε: βνεξ ημ πιεζηέζηενμ δεύγμξ «ακάμεζα». Γπέζηνερε ηεκ θαιύηενε από ηηξ 3 ιύζεηξ. θαίκεηαη ζακ Θ(n 2 ) L 8 21 12 108

Πιεζηέζηενμ Δεύγμξ εμείςκ Βνεξ ημ πιεζηέζηενμ «ακάμεζα», οπμζέημκηαξ όηη ε απόζηαζε < δ. L 21 12 δ = min(12, 21) 109

Πιεζηέζηενμ Δεύγμξ εμείςκ Βνεξ ημ πιεζηέζηενμ «ακάμεζα», οπμζέημκηαξ όηη ε απόζηαζε < δ. Παναηήνεζε: πνεηαδόμαζηε μόκμ ζεμεία ζε απόζηαζε δ από ηεκ εοζεία L L 21 12 δ = min(12, 21) 110

Πιεζηέζηενμ Δεύγμξ εμείςκ Βνεξ ημ πιεζηέζηενμ «ακάμεζα», οπμζέημκηαξ όηη ε απόζηαζε < δ. Παναηήνεζε: πνεηαδόμαζηε μόκμ ζεμεία ζε απόζηαζε δ από ηεκ εοζεία L Σαληκόμεζε ηα ζεμεία ζε μηα 2δ-ιςνίδα ςξ πνμξ ηεκ y-ζοκηεηαγμέκε. 7 L 6 4 5 21 12 3 δ = min(12, 21) 2 1 111

Πιεζηέζηενμ Δεύγμξ εμείςκ Βνεξ ημ πιεζηέζηενμ «ακάμεζα», οπμζέημκηαξ όηη ε απόζηαζε < δ. Παναηήνεζε: πνεηαδόμαζηε μόκμ ζεμεία ζε απόζηαζε δ από ηεκ εοζεία L Σαληκόμεζε ηα ζεμεία ζε μηα 2δ-ιςνίδα ςξ πνμξ ηεκ y-ζοκηεηαγμέκε. Γιέγπμομε μόκμ απμζηάζεηξ ζεμείςκ πμο βνίζθμκηαη ημ πμιύ ζε 11 ζέζεηξ ζηε ηαληκμμεμέκε ιίζηα! 7 L 6 4 5 21 12 3 δ = min(12, 21) 2 1 112

Πιεζηέζηενμ Δεύγμξ εμείςκ Ονηζμόξ. Έζης s i ημ ζεμείμ ηεξ 2δ-ιςνίδαξ, με ηεκ i ζηε μηθνόηενε y-ζοκηεηαγμέκε. Ζζπονηζμόξ. Ακ i j 12, ηόηε ε απόζηαζε μεηαλύ ημο s i θαη s j είκαη ημοιάπηζημκ δ. Απόδεηλε. 31 39 j Δεκ οπάνπμοκ δομ ζεμεία ζημ ίδημ ½ -επί-½ θμοηί. Δομ ζεμεία πμο βνίζθμκηαη ακάμεζα από 2 γναμμέξ (πιάημξ γναμμήξ ½δ), 2 rows 29 30 ½ ½ έπμοκ απόζηαζε 2(½ ). i 27 28 ½ Γεγμκόξ. Ε ηημή 12 μπμνεί κα ειαηηςζεί ζε 6. (ημ βηβιίμ ακαθένεηαη γηα ηημή 16) 26 25 7, 12, 16 ζηαζενά c 113

Ο Αιγόνηζμμξ πιεζηέζηενμο δεύγμοξ ζεμείςκ Closest-Pair(p 1,, p n ) { Υπολόγιζε γπαμμή διασυπιζμού L ηέηοια ώζηε μιζά ζημεία να βπίζκονηαι ζηο απιζηεπό και μιζά ζηο δεξί ημήμα. 1 = Closest-Pair(απιζηεπό μιζό) 2 = Closest-Pair(δεξί μιζό) = min( 1, 2 ) Διέγπατε όλα ηα ζημεία ζε απόζηαζη > από ηην γπαμμή L Ταξινόμηζε ηα ςπόλοιπα ζημεία υρ ππορ y-ζςνηεηαγμένη Σάπυζε ηα ζημεία υρ ππορ ηην y-ζςν/μένη και ζύγκπινε αποζηάζειρ μεηαξύ κάθε ζημείος και ηιρ επόμενερ 11 θέζειρ. Αν κάποια απόζηαζη < δ ηόηε ενημέπυζε δ. O(n log n) O(n) 2T(n / 2) O(n) O(n log n) O(n) O(n) } return. 114

Πιεζηέζηενμ Δεύγμξ εμείςκ: Ακάιοζε Υνόκμξ Γθηέιεζεξ. T(n) 2T n/2 O(n logn) T(n) O(n log 2 n) Γνώηεμα. Ιπμνμύμε κα πεηύπμομε O(n log n); Απάκηεζε. Καη. Ιεκ ηαληκμμείξ ηα ζεμεία ηεξ ιςνίδαξ από ημ μεδέκ ζε θάζε επακάιερε. Ηάζε ακαδνμμή επηζηνέθεη δύμ ιίζηεξ: όια ηα ζεμεία ηαληκμμεμέκα ςξ πνμξ ηεκ y ζοκηεηαγμέκε, θαη όια ηα ζεμεία ηαληκμμεμέκα ςξ πνμξ ηεκ x ζοκηεηαγμέκε. Σαληκόμεζε με ζογπώκεοζε δύμ (ήδε) ηαληκμμεμέκεξ ιίζηεξ. T(n) 2T n/2 O(n) T(n) O(n logn) 115

Ηαιή Ιειέηε!! Τπάνπμοκ πμιύ θαιέξ ιομέκεξ αζθήζεηξ ζημ βηβιίμ [ΗΣ] Δώζηε πνμζμπή θαη ζημ «Υνήζημμ Τιηθό»

Ανοικτά Ακαδημαϊκά Μαθήματα Πανεπιστήμιο Ιωαννίνων Τέλος Ενότητας

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Ιωαννίνων» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Σημειώματα Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Ιωαννίνων, Διδάσκων: Λέκτορας Χάρης Παπαδόπουλος «Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων». Έκδοση: 1.0. Ιωάννινα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://ecourse.uoi.gr/course/view.php?id=1111. Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού - Παρόμοια Διανομή, Διεθνής Έκδοση 4.0 [1] ή μεταγενέστερη. [1] https://creativecommons.org/licenses/by-sa/4.0/.