Γηάιεμε 14: Αιγόξηζκνη Ταμηλόκεζεο

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

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

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

Δηάιεμε 13: Αιγόξηζκνη Ταμηλόκεζεο

ΗΥ-150 Πξνγξακκατησκόο Ταμηλόκεσε θαη Αλαδήτεσε

ηδάζθσλ: εµήηξεο Εετλαιηπνύξ

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

Ππογπαμμαηιζμόρ Ι (ΗΥ120)

Ενδεικτικά Θέματα Στατιστικής ΙΙ

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

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

Έλαο πίνακας σσμβόλων ππνζηεξίδεη δύν βαζηθέο ιεηηνπξγίεο:

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.

ηδάζθσλ: εµήηξεο Εετλαιηπνύξ

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

ΣΥΣΤΗΜΑΤΑ ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 1. Να ιπζνύλ ηα ζπζηήκαηα. 1 0,3x 0,1y x 3 3x 4y 2 4x 2y ( x 1) 6( y 1) (i) (ii)

Γηάιεμε 15: Αιγόξηζκνη Ταμηλόκεζεο

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

Αντισταθμιστική ανάλυση

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

Constructors and Destructors in C++

Η/Υ A ΤΑΞΕΩΣ ΑΕ Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙΜΟ Α ΛΤΚΔΙΟΤ. Ημεπομηνία: 10/12/11 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΔΙΝΟΜΔΝΔ ΛΤΔΙ

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

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική ΑΔ

(γ) Να βξεζεί ε ρξνλνεμαξηώκελε πηζαλόηεηα κέηξεζεο ηεο ζεηηθήο ηδηνηηκήο ηνπ ηειεζηή W.

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

Κβαντικοί Υπολογισμοί. Πέκπηε Γηάιεμε

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KARNAUGH

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

Δυναμικοί πίνακες. Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη κε ρξήζε πηλάθσλ. π.ρ. Σηνίβεο. α β γ δ. tail. head % N. Οπξέο Ν-1. θάησ όξην.

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

ΚΔΦ. 2.4 ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ

Δηάιεμε 10: Λίζηεο Υινπνίεζε & Εθαξκνγέο

Φςζική Πποζαναηολιζμού Γ Λςκείος. Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

α) ηε κεηαηόπηζε x όηαλ ην ζώκα έρεη κέγηζην ξπζκό κεηαβνιήο ζέζεο δ) ην κέγηζην ξπζκό κεηαβνιήο ηεο ηαρύηεηαο

Ανάπηςξη Δθαπμογών ζε Ππογπαμμαηιζηικό Πεπιβάλλον

(Ενδεικηικές Απανηήζεις) ΘΔΜΑ Α. Α1. Βιέπε απόδεημε Σει. 262, ζρνιηθνύ βηβιίνπ. Α2. Βιέπε νξηζκό Σει. 141, ζρνιηθνύ βηβιίνπ

ΠΛΗ36. Άσκηση 1. Άσκηση 2. Οη δηεπζύλζεηο ησλ 4 σλ ππνδηθηύσλ είλαη νη αθόινπζεο. Υπνδίθηπν Α: /27 Υπνδίθηπν Β:

1 Είζοδορ ζηο Σύζηημα ΣΔΕΔ ή BPMS

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γευηέρα 11 Ηουνίου 2018 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report.

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο:

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

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf

Δξγαιεία Καηαζθεπέο 1 Σάμε Δ Δ.Κ.Φ.Δ. ΥΑΝΗΩΝ ΠΡΩΣΟΒΑΘΜΗΑ ΔΚΠΑΗΓΔΤΖ. ΔΝΟΣΖΣΑ 2 ε : ΤΛΗΚΑ ΩΜΑΣΑ ΔΡΓΑΛΔΗΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Ογθνκεηξηθό δνρείν

Επωηήζειρ Σωζηού Λάθοςρ ηων πανελλαδικών εξεηάζεων Σςναπηήζειρ

ΘΔΜΑ 1 ο Μονάδες 5,10,10

Κεθάιαην 20. Ελαχιστοποίηση του κόστους

Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο κόζηος ανά μονάδα παραγωγής. Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο ζηαθερό κόζηος ανά μονάδα παραγωγής

ΜΕΛΕΣΗ E.O.K. ΜΕ ΑΙΘΗΣΗΡΑ ΘΕΗ

Άσκηση 1 - Μοπυοποίηση Κειμένου

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

242 - Ειζαγωγή ζηοσς Η/Υ

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γεσηέρα 10 Ηοσνίοσ 2019 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

Α Καθοπιζμόρ απμοδιοηήηυν - 1 επικεθαλήρ 1. Γ Αςηοτία ζηη ζήπαγγα Β 1 επικεθαλήρ εξ. ζηελεσορ. Ε Ποζοηική ανάλςζη Γ 3 εξ.

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

Οργάνωση και Δομή Παρουσιάσεων

Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots)

Τν Πξόγξακκα ζα αλαθνηλσζεί, ακέζσο κεηά ηηο γηνξηέο ηνπ Πάζρα.

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο

Γ ΣΑΞΖ ΔΝΗΑΗΟΤ ΛΤΚΔΗΟΤ ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΘΔΣΗΚΩΝ ΚΑΗ ΟΗΚΟΝΟΜΗΚΩΝ ΠΟΤΓΩΝ ΤΝΑΡΣΖΔΗ ΟΡΗΑ ΤΝΔΥΔΗΑ (έως Θ.Bolzano) ΘΔΜΑ Α

Δξγαιεία Καηαζθεπέο 1 Σάμε Σ Δ.Κ.Φ.Δ. ΥΑΝΙΧΝ ΠΡΧΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ. ΔΝΟΣΗΣΑ 11 ε : ΦΧ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Φαθόο κε ζσιήλα.

f '(x)g(x)h(x) g'(x)f (x)h(x) h'(x) f (x)g(x)

ΛΙΜΝΗ ΤΣΑΝΤ. Σρήκα 1. Σρήκα 2

Γηζδηάζηαηνη Πίλαθεο

ΔΦΑΡΜΟΜΔΝΑ ΜΑΘΗΜΑΣΙΚΑ ΣΗ ΧΗΜΔΙΑ Ι ΘΔΜΑΣΑ Α επηέκβξηνο Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(x,y) =

ΕΞΙΣΩΣΕΙΣ. (iv) (ii) (ii) (ii) 5. Γηα ηηο δηάθνξεο ηηκέο ηνπ ι λα ιπζνύλ νη εμηζώζεηο : x 6 3 9x

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

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

Διαδικαζία μεηαθοράς δεδομένων Εκκαθαριζηικής για ηο Eιδικό ζημείωμα περαίωζης Φ.Π.Α

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ ΣΔΣΑΡΣΖ 25 ΜΑΨΟΤ 2016 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΑΡΥΔ ΟΗΚΟΝΟΜΗΚΖ ΘΔΧΡΗΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ - ΔΠΗΛΟΓΖ

Έωρ και 28% η αύξηζη ηων ειζθοπών από ηο 2019!

ΒΗΜΑ 2. Εηζάγεηε ηνλ Κωδηθό Πξόζβαζεο πνπ ιακβάλεηε κε SMS & δειώλεηε επηζπκεηό Όλνκα Πξόζβαζεο (Username) θαη ην ζαο

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) FritzBox Fon WLAN Annex B ( )

Δσζμενές διαηαρατές και Ονομαζηικό-πραγμαηικό επιηόκιο

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα

Transcript:

Γηάιεμε 14: Αιγόξηζκνη Ταμηλόκεζεο Σηελ ελόηεηα απηή ζα κειεηεζνύλ ηα εμήο επηκέξνπο ζέκαηα: Οι αλγόπιθμοι ηαξινόμηζηρ 3) Mergesort Ταξινόμηζη με Σςγσώνεςζη 4) BucketSort Ταξινόμηζη με Κάδοςρ ηδάζθσλ: εµήηξεο Εετλαιηπνύξ 14-1

3) Ταμηλόκεζε κε Σπγρώλεπζε (Merge sort) Ζ ηαξινόμηζη με ζςγσώνεςζη είλαη δηαδηθαζία διαίπει και βαζίλεςε ( Divide and Conquer: αλαδξνκηθή δηαδηθαζία όπνπ ην πξόβιεκα κνηξάδεηαη ζε κέξε ηα νπνία ιύλνληαη μερσξηζηά, θαη κεηά νη ιύζεηο ζπλδπάδνληαη. ) Πεξηγξαθή ηνπ Mergesort 1.Διαίπεζη: Αλαδξνκηθά κνηξάδνπκε ηνλ πίλαθα ζηα δύν κέρξη λα θηάζνπκε ζε πίλαθεο κεγέζνπο έλα (DIVIDE) 2.Σςγσώνεςζη: Ταμηλνκνύκε αλαδξνκηθά ηνπο πίλαθεο απηνύο κε ηελ ζπγρώλεπζε γεηηνληθώλ πηλάθσλ (ρξεζηκνπνηώληαο βνεζεηηθό πίλαθα). (CONQUER) 14-2

Ζ Βαζηθή Ηδέα ηνπ Αιγόξηζκνπ Merge Sort (#ζηνηρείσλ αξηζηεξά) n=7 (#ζηνηρείσλ δεμηά) n 7 n 7 4 3 2 2 2 2 Divide Conquer (merge) 14-3

Σπγρώλεπζε 2 Ληζηώλ Υπνζέζηε όηη ζέιεηε λα ζπγρσλεύζεηε 2 ηαμηλνκεκέλεο ιίζηεο L1, L2 θαη λα δεκηνπξγήζεηε κηα λέα ηαμηλνκεκέλε ιίζηα TEMP. Διαδικαζία 1. Τνπνζέηεζε ηνπο δείθηεο i, j ζηελ θεθαιή θάζε ιίζηαο. 2. Γηάιεμε ην κηθξόηεξν από ηελ ιίζηα L1 θαη L2 θαη ηνπνζέηεζε ηνλ ζηνλ πίλαθα TEMP ζηελ ζέζε θ 3. Πξνρώξεζε ηνλ δείθηε i (αλ ην κηθξόηεξν ζηνηρείν ήηαλ από ηελ ιίζηα L1) ή ηνλ δείθηε j ζηελ αληίζεηε πεξίπησζε. 4. Δπαλέιαβε ηα βήκαηα 2-4 κέρξη λα εηζαρζνύλ όια ηα ζηνηρεία ζηνλ TEMP Μέηα από 6 εκηελέζειρ: L1 7 8 9 16 30 56 L2 3 5 15 28 60 TEMP 3 5 7 8 9 15 i min(l1[i],l2[j]) θ j (Τν i,j μεθηλάλε από ηελ αξρή ηεο θάζε ιίζηαο) 14-4

Παξάδεηγκα Δθηέιεζεο Merge Sort BEFORE:[8,4,8,43,3,5,2,1,10,] 0,8: [8,4,8,43,3,5,2,1,10,] 0,4: [8,4,8,43,3,] 0,2: [8,4,8,] 0,1: [8,4,] 0,0: [8,] 1,1: [4,] Merging: [A0,A0] [A1,A1] => [4,8,] 2,2: [8,] Merging: [A0,A1] [A2,A2] => [4,8,8,] 3,4: [43,3,] 3,3: [43,] 4,4: [3,] Index: 0 1 2 3 4 5 6 7 8 divide divide divide Merging: [A3,A3] [A4,A4] => [3,43,] Merging: [A0,A2] [A3,A4] => [3,4,8,8,43,] 5,8: [5,2,1,10,] 5,6: [5,2,] 5,5: [5,] 6,6: [2,] Merging: [A5,A5] [A6,A6] => [2,5,] 7,8: [1,10,] 7,7: [1,] 8,8: [10,] divide divide Merging: [A7,A7] [A8,A8] => [1,10,] Merging: [A5,A6] [A7,A8] => [1,2,5,10,] Merging: [A0,A4] [A5,A8] => [1,2,3,4,5,8,8,10,43,] AFTER:[1,2,3,4,5,8,8,10,43,] 14-5

Αιγόξηζκνο Merge Sort void MergeSort(int A[], int temp[],int l, int r){ // η ζςνθήκη ηεπμαηιζμού ηηρ ανάδπομηρ if (l==r) return; int mid = (l+r)/2; // για ελασιζηοποίηζη overflow(για μεγάλα l,r) // int mid = l + ((r - l) / 2); // μοιπάζοςμε αναδπομικά ηον πίνακα Mergesort(A, temp, l, mid); Mergesort(A, temp, mid+1, r); // Τώπα οι πίνακερ [l..mid] και [mid+1..r] είναι ηαξινομημένοι // Η διαδικαζία ζςγσώνεςζηρ k=l, i=l; j=mid+1; l i L1 Mid 7 8 9 16 30 56 3 5 15 28 60 min(l1[i],l2[j]) k TEMP 3 5 7 8 9 15 Mid+1 j L2 r // ζςγσώνεςζη ζηον TEMP μέσπι μια από ηιρ λίζηερ να είναι κενή while ((i<=mid) && (j<=r)) { if (A[i]<A[j]) { temp[k] = A[i]; i++; else { temp[k] = A[j]; j++; k++; ζςνέσεια ζηην επόμενη διαθάνεια 14-6

Αιγόξηζκνο Merge Sort // copy όλων ηα ςπόλοιπων ζηοισείων ηηρ λίζηαρ L1 while (i<=mid) { temp[k] = A[i]; L1 Mid k++;i++; l i 7 8 9 16 30 56 3 5 15 28 60 // copy όλων ηα ςπόλοιπων ζηοισείων ηηρ λίζηαρ L2 while (j<=r) { temp[k] = A[j]; k++;j++; Mid+1 TEMP 3 5 7 8 9 15 16 28 30 56 L2 j k r // ανηιγπαθή όλων ηων ζηοισείων από TEMP -> A for (i=l; i<=r; i++) { A[i] = temp[i]; 14-7

Αλάιπζε Φξόλνπ (αλαδξνκήο) Τν πξόβιεκα κνηξάδεη αλαδξνκηθά ζε δπν κέξε ηελ ιίζηα πνπ ζέινπκε λα ηαμηλνκήζνπκε. Όηαλ θηάζνπκε ζηελ ιίζηα πνπ έρεη κέγεζνο 1 ηόηε ζηακαηά ε αλαδξνκή θαη ην πξόγξακκα αξρίδεη λα ζπλδπάδεη (merge) ηηο επηκέξνπο ιίζηεο. Παξαηεξνύκε όηη πάλσ ζε κηα ιίζηα κεγέζνπο Ν ε αλαδξνκή εθηειείηαη 2log 2 n θνξέο. Γειαδή ν πίλαθαο κνηξάδεηαη σο εμήο: n, n/2, n/4,, 2, 1 void MergeSort(int A[], int temp[],int l, int r){ if (l==r) return; int mid = (l+r)/2; Mergesort(A, temp, l, mid); Mergesort(A, temp, mid+1, r); Θ(logn) 14-8

Αλάιπζε Φξόλνπ (ζπγρώλεπζε) Σε κάθε επίπεδο ηηρ ανάδπομηρ πεπνάμε μια θοπά από ηο κάθε ζηοισείο. Δπνκέλσο ε ζπγρώλεπζε ησλ ζηνηρείσλ ζε θάζε επίπεδν ηεο εθηέιεζεο ρξεηάδεηαη γπαμμικό ρξόλν Θ(n). Σεκεηώζηε όηη ε δηαδηθαζία απαηηεί ηε ρξήζε βνεζεηηθνύ πίλαθα. Μπνξνύκε λα ρξεζηκνπνηνύκε ηνλ ίδην βνεζεηηθό πίλαθα temp γηα όιεο ηηο (αλαδξνκηθέο) θιήζεηο ηνπ ΜergeSort. 14-9

Σπλνιηθόο Φξόλνο Δθηέιεζεο Mergesort Ζ αληηγξαθή θαη ε ζπγρώλεπζε παίξλνπλ ρξόλν Θ(n) θαη ε αλαδξνκή παίξλεη ρξόλν Ο(log n). Σπλνιηθά Θ(n log n). Ο ρξόλνο εθηέιεζεο εθθξάδεηαη θαη από ηελ αλαδξνκηθή εμίζσζε Τ(0) = Τ(1) = 1 Τ(n) = 2 T(n/2) + n ε νπνία κπνξεί λα ιπζεί κε ην Master Theorem ή κε ηελ κέζνδν ηεο αληηθαηάζηαζεο. Πλεονέκηημα MergeSort: O ζπλνιηθόο ρξόλνο εθηέιεζεο είλαη Θ(n log n) (ζε αληίζεζε κε ην SelectionSort (Θ(n 2 )) θαη ην InsertionSort (Ο(n 2 )) Μειονέκηημα: Απαηηεί ηε ρξήζε βνεζεηηθνύ πίλαθα (δειαδή ρξεηάδεηαη δηπιάζην ρώξν απνζήθεπζεο γηα ηελ εθηέιεζε ηνπ). Απηό δελ θαζηζηά ηελ κέζνδν πνιύ εύρξεζηε. 14-10

4) Ταμηλόκεζε κε Κάδνπο - BucketSort Έζησ όηη ν πίλαθαο A n ζηνηρείσλ πεξηέρεη ζηνηρεία πνπ αλήθνπλ ζην δηάζηεκα [1..m]. O αλγόπιθμορ BucketSort βαζίδεηαη πάλσ ζηα αθόινπζα βήκαηα: 1. Γεκηνπξγνύκε έλα πίλαθα buckets κήθνπο m θαη ζέηνπκε buckets[i]=0, γηα όια ηα i (Απηά ηα είλαη ηα buckets - θάδνη) 2. Γηαβάδνπκε ηνλ πίλαθα Α μεθηλώληαο από ην πξώην ζηνηρείν. Αλ δηαβάζνπκε ην ζηνηρείν α, ηόηε απμάλνπκε ηελ ηηκή ηνπ buckets[α] θαηά έλα. Δπαλαιακβάλνπκε ην βήκα κέρξη ην ηειεπηαίν ζηνηρείν. 3. Τέινο, δηαβάδνπκε γξακκηθά ηνλ πίλαθα buckets, o oπνίνο πεξηέρεη αλαπαξάζηαζε ηνπ ηαμηλνκεκέλνπ πίλαθα, θαη ζέηνπκε ηα ζηνηρεία ηνπ πίλαθα Α κε ηελ ηαμηλνκεκέλε αθνινπζία. BUCKETS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 3 4 5 6 7 8 9 10 11 0 1 12 13 14 14-11

Ζ Βαζηθή Ηδέα ηνπ Αιγόξηζκνπ Βucket Sort Δεδομένο Ειζόδος: Τα ζηοισεία είναι ζηο εύπορ m=[0,14], n=8 1 11 1 7 2 14 7 1 0 Μεηά ηελ ππώηη εθηέιεζε ηνπ Bucketsort (Δηζαγσγή ηνπ 1) n-1 BUCKETS 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Μεηά ηε ηπίηη εθηέιεζε ηνπ Bucketsort (Δηζαγσγή ηνπ 1) m BUCKETS 0 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Μεηά ηελ 8ή εθηέιεζε ηνπ Bucketsort m BUCKETS 0 3 1 0 0 0 0 2 0 0 0 1 0 0 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 m 14-12

Αιγόξηζκνο BucketSort // Α: Πίνακαρ για ηαξινόμηζη μεγέθοςρ n // Buckets: Βοηθηηικόρ πίνακαρ μεγέθοςρ m void Bucketsort(int A[], int buckets[], int n, int m) int i, j, k=0; // Καηανομή ζηοισείων ζηοςρ ζωζηούρ κάδοςρ for (i=0; i<n; i++) { buckets[a[i]]++; Ο(n) // Ανηιγπαθή ζηοισείων από πίνακα BUCKETS ζηον πίνακα A for (i=0; i<m; i++) { for (j=0; j<buckets[i]; j++) { A[k] = i; k++; BUCKETS: Ο(m+n) Σπλνιηθά πεξλάκε 1 θνξά από ηα ζηνηρεία ηνπ πίλαθα BUCKETS (m) θαη κηα θνξά από απηά ηνπ A (n) 0 3 1 0 0 0 0 2 0 0 0 1 0 0 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ΕΠΛ 035 Δομές Δεδομένων A: 1και Αλγόριθμοι 1 1 2 για 7 Ηλ. 7 Μηχ. 11 και 14 Μηχ. Υπολ. 0 1 2 3 4 5 6 7 n m 14-13

Φξόλνο Δθηέιεζεο O αλγόπιθμορ BucketSort πεηςσαίνει ηαξινόμηζη ηος Α ζε σπόνο Θ(n+m): Σημαίνει όηι ο αλγόπιθμορ είναι καλύηεπορ από ηον Mergesort Θ(nlogn)? (Καηαθξίβεηαλ κπνξεί λα απνδεηρζεί όηη όινη νη αιγόξηζκνη ηαμηλόκεζεο, κε δςαδική ζύγκπιζη, έρνπλ ζαλ θάησ θξάγκα Ω(n log n)) ΟΧΙ, γηαηί ην κνληέιν είλαη δηαθνξεηηθό. Μέρξη ηώξα ππνζέζακε όηη ε κόλε πξάμε πνπ κπνξνύκε λα εθαξκόζνπκε ζηα δεδνκέλα είλαη ε δπαδηθή ζύγθξηζε ζηνηρείσλ. Ο αιγόξηζκνο BucketSort όκσο ζην Βήκα 2 νπζηαζηηθά εθαξκόδεη m-αδική (m-ary) ζύγκπιζη, ζε ρξόλν Ο(1). Απηό καο ππελζπκίδεη πσο ζρεδηάδνληαο έλα αιγόξηζκν θαη ιακβάλνληαο ππόςε θάπνηα απνδεδεηγκέλα θάησ θξάγκαηα πξέπεη πάληα λα αλαιύνπκε ην κνληέιν ζην νπνίν δνπιεύνπκε. Ζ ύπαξμε θαη αμηνπνίεζε πεξηζζόηεξσλ πιεξνθνξηώλ πηζαλόλ λα επηηξέπνπλ ηε δεκηνπξγία απνδνηηθόηεξσλ αιγνξίζκσλ. 14-14