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

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

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

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

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

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

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

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

Αλγόριθμοι και Δομές Δεδομένων(Θ) Ευάγγελος Γ. Ούτσιος

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

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

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

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

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

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

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

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ

Δομές Δεδομένων Ενότητα 2

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

Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

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

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

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

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

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

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

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

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση

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

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

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

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

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

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Υπολογιστικά & Διακριτά Μαθηματικά

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

Εισαγωγή στον δομημένο προγραμματισμό

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

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΘΕΩΡΙΑ ΠΑΙΓΝΙΩΝ. Ενότητα 2: Ισορροπία Nash. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

Προγραμματισμός Η/Υ. Αναζήτηση & Ταξινόμηση. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

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

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

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

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3)

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

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

Υπολογιστικά & Διακριτά Μαθηματικά

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ. ΕΝΟΤΗΤΑ: Γραμμικές Συναρτήσεις Διάκρισης. ΔΙΔΑΣΚΟΝΤΕΣ: Βλάμος Π. Αυλωνίτης Μ. ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

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

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

Αναδρομικοί Αλγόριθμοι

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

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

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

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

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

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

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

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

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 2: Ανάλυση Αλγορίθμων. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Αναγνώριση Προτύπων Ι

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

Μοντελοποίηση Λογικών Κυκλωμάτων

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

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 4: Διαίρει και Βασίλευε. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραμματισμός Η/Υ (ΤΛ2007 )

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

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

Περιεχόμενα ΜΤ Τυχαίας Προσπέλασης Θεωρία Υπολογισμού Ενότητα 23: Μηχανές Turing Τυχαίας Προσπέλασης Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ.

Εισαγωγή στην πληροφορική

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

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

Transcript:

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 6α: Αναζήτηση Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commos. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Μαρία Σατρατζέμη

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Μαρία Σατρατζέμη 3

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

Παραδοχή Στη συνέχεια των διαφανειών (διαλέξεων) η ασυμπτωτική έκφραση (συμβολισμός Ο, Ω, Θ) του χρόνου εκτέλεσης ενός αλγόριθμου θα αποδίδεται με τον όρο (χρονική) πολυπλοκότητα ενός αλγόριθμου. Πολυπλοκότητα Χειρότερης περίπτωσης: () = μέγιστος χρόνος εκτέλεσης του αλγορίθμου για οποιαδήποτε είσοδο μεγέθους. Πολυπλοκότητα Μέσης περίπτωσης: () = αναμενόμενος χρόνος εκτέλεσης αλγορίθμου επί όλων των εισόδων μεγέθους. 5

Αναζήτηση Το πρόβλημα της αποτελεσματικής αναζήτησης είναι σημαντικό καθώς εμφανίζεται σε πλήθος θεωρητικών και πρακτικών προβλημάτων. Στην ενότητα αυτή συνοψίζονται δεδομένα αποτελέσματα αλλά παρουσιάζονται κατά αναλυτικότερο τρόπο. 6

Σειριακή Αναζήτηση Από πού να ξεκινήσω, παρακαλώ Μεγαλειότατε; ρώτησε, Ξεκίνα από την αρχή, είπε ο Βασιλιάς με σοβαρότητα, και συνέχισε μέχρι να φτάσεις στο τέλος: τότε σταμάτα. Lewis Caroll, Alice s Advetures i Woderlad 7

Σειριακή Αναζήτηση Η απλούστερη μέθοδος αναζήτησης είναι η σειριακή (sequetial) ή αλλιώς γραμμική (liear search). Η επόμενη διαδικασία Sequetial υποθέτει ότι αναζητείται η τιμή ey στον πίνακα Α που περιέχει αταξινόμητα στοιχεία, και επιστρέφει τη θέση του κλειδιού στον πίνακα ή την τιμή - αν το κλειδί δεν υπάρχει (περίπτωση ανεπιτυχούς αναζήτησης). 8

Αλγόριθμος σειριακής αναζήτησης Algorithm Sequetial(ey). i =. while (i ) do 3. if (Α[i] == ey) the retur i 4. else i = i + 5. retur - 9

Βελτίωση με κόμβο φρουρό Με την τεχνική του κόμβου φρουρού (setiel), η μέθοδος θα υλοποιηθεί θεωρώντας μια ακόμη θέση στον πίνακα: A[ + ] ey Αν και πρακτικά η διαδικασία θα βελτιωθεί, σε θεωρητικό επίπεδο σε κάθε περίπτωση θα ισχύουν οι επόμενες προτάσεις υποθέτοντας ότι η πιθανότητα αναζήτησης του κλειδιού Α[i] είναι Ρ i = /, για i (δηλαδή η πιθανότητα το κλειδί να βρίσκεται σε οποιαδήποτε θέση είναι ίδια) 0

Πρόταση. Η επιτυχής αναζήτηση σε πίνακα με αταξινόμητα κλειδιά έχει πολυπλοκότητα Θ(), Θ() και Θ() στην καλύτερη, στη χειρότερη και στη μέση περίπτωση, αντίστοιχα. Απόδειξη. Η καλύτερη και η χειρότερη περίπτωση συμβαίνουν όταν η αναζήτηση τερματίζεται με την εξέταση της πρώτης και της τελευταίας θέσης του πίνακα, αντίστοιχα. Αρα Θ() και Θ() αντίστοιχα καθώς θα κάνει σύγκριση ή. Για τη μέση περίπτωση θεωρώντας ότι η πιθανότητα αναζήτησης του κλειδιού Α[i] είναι Ρ i = /, για i, άρα η εντολή {3} μπορεί να εκτελεστεί ή ή 3 ή φορές αν το κλειδί βρίσκεται αντίστοιχα στην η ή στη η ή στην - οστή θέση και όλες οι θέσεις να βρεθεί το κλειδί είναι με ίση πιθανότητα / :... από όπου προκύπτει η αλήθεια της πρότασης.

Πρόταση. Η ανεπιτυχής αναζήτηση σε πίνακα με αταξινόμητα κλειδιά έχει πολυπλοκότητα Θ() στην καλύτερη, στη χειρότερη και στη μέση περίπτωση. Απόδειξη. Σε κάθε περίπτωση θα σαρωθεί ολόκληρος ο πίνακας και άρα η πρόταση ισχύει. Αν υποθέσουμε ότι ο πίνακας περιέχει ταξινομημένα στοιχεία, τότε για την επιτυχή αναζήτηση ισχύει η ανωτέρω πρόταση αλλά για να επιταχύνουμε την ανεπιτυχή αναζήτηση πρέπει να μετατρέψουμε τη διαδικασία Sequetial ως εξής.

Αλγόριθμος σειριακής αναζήτησης για ταξινομημένους πίνακες Algorithm Sequetial(ey). i =. while (i ) do 3. if (Α[i] < ey) the i = i + 4. else if (Α[i] == ey) the retur i 5. else retur - 3

Πρόταση 3. Η ανεπιτυχής αναζήτηση σε πίνακα με ταξινομημένα κλειδιά έχει πολυπλοκότητα Θ(), Θ() και Θ() στην καλύτερη, στη χειρότερη και στη μέση περίπτωση, αντίστοιχα. Απόδειξη. Όταν αναζητούμε ένα μη υπαρκτό κλειδί, τότε αυτό μπορεί να ανήκει σε ένα από + μεσοδιαστήματα που (σχηματικά) δημιουργούνται από τις τιμές των στοιχείων του πίνακα επάνω στην ευθεία των ακεραίων. ey A[] A[] A[3] A[i] A[i+] A[] Η καλύτερη περίπτωση όταν το αναζητούμενο ey είναι μικρότερο από το πρώτο στοιχείο του πίνακα και έχουμε Θ(). Η χειρότερη περίπτωση όταν το αναζητούμενο ey είναι μεγαλύτερο από το τελευταίο στοιχείο και έχουμε Θ(). 4

Για τη μέση περίπτωση θα πρέπει να εξετάσουμε + περιπτώσεις και να λάβουμε το μέσο όρο τους. Αν το ey είναι μικρότερο από το πρώτο στοιχείο, τότε αρκεί μία σύγκριση για να τερματισθεί η διαδικασία. Αν το ey είναι μεγαλύτερο από το i-οστό και μικρότερο από το (i + )-οστό στοιχείο (για i < ), τότε αρκούν i + συγκρίσεις. A[i]<ey< A[i+] 3 i i+ - συγκρίσεις 3 4 i+ i+ Αν το ey είναι μεγαλύτερο από το -οστό στοιχείο, τότε αρκούν συγκρίσεις. Συνεπώς ισχύει:...... ( ) 3 από όπου προκύπτει η αλήθεια της πρότασης 5

Δυαδική Αναζήτηση Κλασικό παράδειγμα των αλγορίθμων της οικογενείας Διαίρει και Βασίλευε είναι η δυαδική αναζήτηση (biary search). Όπως γνωρίζουμε η αναζήτηση αυτή εφαρμόζεται σε πίνακες που περιέχουν ταξινομημένα στοιχεία. Υπενθυμίζοντας ότι η αποτελεσματικότητα των επαναληπτικών μεθόδων είναι καλύτερη των αναδρομικών (το κόστος κλήσης κάθε υποπρογράμματος δεν είναι αμελητέο), στη συνέχεια παρουσιάζουμε την επαναληπτική διαδικασία Biary_Iterate και την αναδρομική διαδικασία Biary_Rec που δείχνουν την ίδια θεωρητική συμπεριφορά. 6

Επαναληπτικός αλγόριθμος δυαδικής αναζήτησης Algorithm Biary_Iterate(ey). bottom = ; top = ;. while (bottom top) do 3. top bottom middle 4. if (A[middle] == ey) the retur middle 5. else if (A[middle] > ey) the top = middle - 6. else bottom = middle + 7. retur - 7

Αναδρομικός αλγόριθμος δυαδικής αναζήτησης Algorithm Biary_Rec(ey, left, rίght). if (left > right) the retur -;. left right middle 3. if (A[middle] == ey) the retur middle 4. else if (A[middle] > ey) the 5. Biary_Rec(ey, left, middle - ) 6. else Biary_Rec(ey, middle +, right) 8

Μπορούμε να περιγράψουμε τη λογική των προηγούμενων διαδικασιών ως εξής. Έστω ότι αναζητούμε το ακέραιο κλειδί ey σε ένα πίνακα Α[... ] με ταξινομημένους ακεραίους αριθμούς. Συγκρίνουμε το κλειδί ey με το περιεχόμενο της μεσαίας θέσης του πίνακα Α, που είναι η θέση middle. Στο σημείο αυτό τρία ενδεχόμενα μπορεί να συμβούν: τα δύο στοιχεία είναι ίσα, οπότε ο σκοπός µας επιτεύχθηκε, το ey είναι μικρότερο από το A[middle], οπότε είμαστε βέβαιοι ότι το ey αποκλείεται να βρίσκεται στον υποπίνακα A[middle... top]. Έτσι συνεχίζουμε στον υποπίνακα A[bottom... middle - ] εξετάζοντας το μεσαίο στοιχείο του, το ey είναι μεγαλύτερο του Α[middle], οπότε το ey σαφώς δεν βρίσκεται στον υποπίνακα Α[bottom... middle). Έτσι συνεχίζουμε και πάλι εξετάζοντας το μεσαίο στοιχείο του υποπίνακα A[middle +... top] 9

Πρόταση 4. Η πολυπλοκότητα της δυαδικής αναζήτησης στη χειρότερη περίπτωση είναι λογαριθμική. Απόδειξη. Κάθε φορά που η σύγκριση του ey µε το µεσαίο στοιχείο του πίνακα δεν καταλήγει σε ισότητα, η σύγκριση επαναλαμβάνεται σε υποπίνακα µισού μεγέθους σε σχέση µε το μέγεθος του αρχικού. Η αναδρομική σχέση που εκφράζει το χειρότερο κόστος του αλγορίθμου ο οποίος διαιρεί σε 3 μέρη το πρόβλημα μπορεί να σχηματισθεί ως εξής, αν θεωρήσουμε με g() το κόστος για να διαιρέσουμε το πρόβλημα σε 3 μέρη: ()= g() + το κόστος για να λύσουμε το ο μέρος + το κόστος για να λύσουμε το ο μέρος + το κόστος για να λύσουμε το 3 ο μέρος Καθώς g()= (σύγκριση με το μεσαίο στοιχείο) και τα 3 μέρη της εργασίας είναι ξένα μεταξύ τους, και το ο μέρος δεν έχει επιπλέον κόστος (περίπτωση το ey ίσο με το μεσαίο στοιχείο) τότε έχουμε την εξής αναδρομική σχέση ()= + max{τ(μέγεθος της αριστερής υπολίστας), 0, Τ(μέγεθος της δεξιάς υπολίστας )} max /, / 0

()= + max{τ(μέγεθος της αριστερής υπολίστας), 0, Τ(μέγεθος της δεξιάς υπολίστας )} () Στην πρώτη εξέταση δυαδικής αναζήτησης έχουμε Αρα η () γίνεται: πλήθος στοιχείων Μέγεθος της αριστερή υπολίστας Μέγεθος της δεξιάς υπολίστας max /, πλήθος στοιχείων (το στοιχείο μεσαίο στοιχείο δεν είναι στοιχείο ούτε της αριστερής ούτε της δεξιάς υπολίστας) Καθώς η δεξιά υπολίστα είναι πάντα τουλάχιστον τόσο μεγάλη όσο και η αριστερή, άρα: max /, / / /

0 0 / / Απλοποιούµε τη σχέση αυτή θεωρώντας τη χειρότερη περίπτωση (δηλαδή, αγνοούμε το δεύτερο σκέλος) και επίσης υποθέτουμε ότι = - ( περιττός) για κάποιο ακέραιο αριθμό. Έτσι προκύπτει = + = lοg (+) = lοg lοg (+) = lοg lοg (+) = αν ey = A[middle] αν ey < A[middle] αν ey > A[middle] /

3 Με αρχική Τ(0)=0. Εχουμε (με επαναλήψεις της αναδρομής): = + = lοg (+) = lοg lοg (+) = lοg lοg (+) = / i i 0 3 log log 0 0...... Ετσι λοιπόν για = - προκύπτει ότι η πολυπλοκότητα της δυαδικής αναζήτησης είναι λογαριθμική Θ(log ). log (+)=Θ(log ) (δες άσκηση.3-6, απόδειξη με κανόνα του ορίου)

Με την Πρόταση 4 αποδείξαμε ότι η πολυπλοκότητα της χειρότερης περίπτωσης της δυαδικής αναζήτησης είναι της τάξης Θ(log ()). Αυτήν την απάντηση την αναμέναμε εφόσον ο αλγόριθμος υποδιπλασιάζει περίπου το μέγεθος του εναπομείναντα πίνακα σε κάθε επανάληψη, ο αριθμός των επαναλήψεων που απαιτούνται για την αναγωγή του αρχικού μεγέθους στο τελικό, είναι περίπου log. Η λογαριθμική συνάρτηση αυξάνει τόσο αργά που οι τιμές της εξακολουθούν να παραμένουν μικρές ακόμη και για πολύ μεγάλες τιμές του. Για την περίπτωση με =000 τότε log (0 3 +)=0 συγκρίσεις. 4

Μια ανάλυση της μέσης περίπτωσης επίσης θα δείξει ότι ο μέσος συγκρίσεων είναι ελαφρά μόνο καλύτερος από την χειρότερη περίπτωση. Οι ακριβείς τύποι για το μέσον όρο των συγκρίσεων για επιτυχή και ανεπιτυχή αναζήτηση είναι log - και log (+) αντίστοιχα. Αν και η δυαδική αναζήτηση είναι ένας βέλτιστος αλγόριθμος αναζήτησης αν και περιοριζόμαστε στις επιτελούμενες πράξεις μόνο στις συγκρίσεις μεταξύ των κλειδιών, παρ όλα αυτά υπάρχουν αλγόριθμοι που επιδεικνύουν καλύτερη αποδοτικότητα μέσης περίπτωσης όπως ο κατακερματισμός για παράδειγμα που δεν απαιτεί ο πίνακας να είναι ταξινομημένος. 5

Ένα τελευταίο σχόλιο είναι ότι ο αλγόριθμος της δυαδικής αναζήτησης παρουσιάζεται ως αλγόριθμος της κατηγορίας διαίρει και βασίλευε. Ο αλγόριθμος της δυαδικής αναζήτησης είναι μια κατεξοχήν μη τυπική περίπτωση της κατηγορίας διαίρει και βασίλευε. Η τεχνική του διαίρει και βασίλευε διαιρεί ένα πρόβλημα σε μικρότερα υποπροβλήματα που το καθένα απαιτεί λύση. Αυτό δε συνάδει με τη δυαδική αναζήτηση όπου μόνο ένα από τα δυο προκύπτοντα υποπροβλήματα απαιτεί λύση. Αρα ο αλγόριθμος της δυαδικής αναζήτησης μπορεί να θεωρηθεί ως εκφυλισμένη περίπτωση της τεχνικής διαίρει και βασίλευε. 6

Τέλος Ενότητας