ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Φροντιστήριο 2 ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φ Ρ Ο Ν Τ Ι Σ Τ Η Ρ Ι Ο 1 : ΤΑΞΙΝΟΜΗΣΗ Δ Ρ Ι Τ Σ Α Σ Η Λ Ι Α Σ Υ Π Ο Ψ Η Φ Ι Ο Σ Δ Ι Δ Α Κ Τ Ο Ρ Α Σ

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ταξινόμηση. Σαλτογιάννη Αθανασία

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι:

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή

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

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

Ενδεικτικές Ερωτήσεις Θεωρίας

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

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

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

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 7 η. Βασίλης Στεφανής

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

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

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

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

Διασυνδεδεμένες Δομές. Λίστες. Προγραμματισμός II 1

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

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

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

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

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

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

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

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

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

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

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

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Σειρά Προβλημάτων 5 Λύσεις

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

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

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

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

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

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

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

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

Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

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

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

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

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

Πληροφορική 2. Αλγόριθμοι

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

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

Εργαστήριο Τεχνολογίας Πολυμέσων & Γραφικών, Τ.Ε.Π Π.Μ, Μάθημα: Γραφικά με Η/Υ

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

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

Εισαγωγή στον Προγραμματισμό

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΡΤΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 6 (ΕΞΙ)

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

διεύθυνση πρώτου στοιχείου διεύθυνση i-οστού στοιχείου T t[n]; &t[0] είναι t &t[i] είναι t + i*sizeof(t)

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

Επιµέλεια Θοδωρής Πιερράτος

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 5

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

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

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

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

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

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

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

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

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

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

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

ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ

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

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

Κατακερματισμός (Hashing)

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

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

ΣΧΟΛΙΑ 1 ΗΣ ΕΡΓΑΣΙΑΣ. 15 Μαΐου 2013

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

Ουρά Προτεραιότητας (priority queue)

Τεχνολογία Πολυμέσων. Ενότητα # 9: Κωδικοποίηση εντροπίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

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

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

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

Transcript:

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήριο 2

ΜΕΡΟΣ Α ΤΑΞΙΝΟΜΗΣΗ ΣΤΗ ΔΕΥΤΕΡΕΥΟΥΣΑ ΜΝΗΜΗ

ΕΙΣΑΓΩΓΗ Όταν η χωρητικότητα της κύριας μνήμης δεν είναι ικανή να χωρέσει όλα τα δεδομένα που πρόκειται να ταξινομηθούν αναγκαζόμαστε να χρησιμοποιήσουμε τη δευτερεύουσα μνήμη (δίσκο,μαγνητικές ταινίες).

Αλγόριθμοι Ταξινόμησης Δευτερεύουσας Μνήμης Εξωτερική Ταξινόμηση Εξωτερική Ταξινόμηση με Επιλογή Αντικατάστασης Υποθέτουμε ότι έχουμε στη διάθεσή μας μαγνητικές ταινίες που χρησιμοποιούνται εναλλάξ ανά p για είσοδο και έξοδο δεδομένων. Η κύρια μνήμη έχει μέγεθος Μ και ταξινομούμε Ν >> Μ στοιχεία.

Εξωτερική Ταξινόμηση Έστω Μ = 3, p = 3 Ακολουθία εισόδου προς ταξινόμηση (αγνοούμε τα κενά) Φάση Α A SORTING AND MERGING EXAMPLE Εφόσον Μ = 3, η ακολουθία διαβάζεται κατά μπλοκ μήκους 3 ως εξής: ASORTINGANDMERGINGEXAMPLE Κάθε i οστό ταξινομημένo μπλοκ εγγράφεται στην ταινία (i mod p) Π.χ. Μπλοκ 4 = DMΝ, το γράφουμε ταξινομημένα στην (4 mod 3 = 1) ταινία, άρα στην 1η ταινία δίπλα από το 1ο μπλοκ. ΤΑΙΝΙΑ 1 AOS DMN AEX ΤΑΙΝΙΑ 2 IRT EGR LMP ΤΑΙΝΙΑ 3 AGN GIN E

Εξωτερική Ταξινόμηση Έστω Μ = 3, p = 3 Ακολουθία εισόδου προς ταξινόμηση (αγνοούμε τα κενά) Φάση B A SORTING AND MERGING EXAMPLE Συγχώνευση (επαναληπτικά) των μπλοκ της Φάσης Α και εγγραφή στην ταινία i mod p + p. Συγχωνεύουμε τα p = 3 πρώτα μπλοκ από τις ταινίες εισόδου στην κύρια μνήμη και τα γράφουμε στην ταινία p+1. Στη συνέχεια, συγχωνεύουμε τα επόμενα p = 3 μπλοκ από τις ταινίες εισόδου στην κύρια μνήμη και τα γράφουμε στην ταινία p+2 κ.ο.κ. ΤΑΙΝΙΑ 4 ΤΑΙΝΙΑ 5 ΤΑΙΝΙΑ 6 AAGINORST DEGGIMNNR AEELMPX

Εξωτερική Ταξινόμηση Έστω Μ = 3, p = 3 Ακολουθία εισόδου προς ταξινόμηση (αγνοούμε τα κενά) Φάση B A SORTING AND MERGING EXAMPLE Οι p ταινίες (1-3) είναι οι ταινίες εισόδου και οι υπόλοιπες p (4-6) οι ταινίες εξόδου. Συγχώνευση:Οι ταινίες εισόδου(1-3) ξανατυλίγονται σε μία ταινία εξόδου, την Ταινία 1. Οι ταινίες εξόδου(4-6) γίνονται ταινίες εισόδου. Σαρώνουμε τα πρώτα στοιχεία της κάθε ταινίας και διώχνουμε το μικρότερο στην ταινία εξόδου.στη θέση του στοιχείου που έφυγε ολισθαίνει το αμέσως επόμενο στοιχείο της ταινίας που αυτό ανήκει.

Εξωτερική Ταξινόμηση A A G I N O R S T D E G G I M N N R A E E L M P X Ταινία 1: A A G I N O R S T D E G G I M N N R A E E L M P X Ταινία 1: AA G I N O R S T D E G G I M N N R A E E L M P X Έξοδος Α, Ολίσθηση A μία θέση αριστερά Έξοδος Α, Ολίσθηση G μία θέση αριστερά Έξοδος Α, Ολίσθηση Ε μία θέση αριστερά Ταινία 1: AAA

Εξωτερική Ταξινόμηση G I N O R S T D E G G I M N N R E E L M P X Ταινία 1: AAAD G I N O R S T E G G I M N N R E E L M P X Ταινία 1: AAADE G I N O R S T G G I M N N R E E L M P X Έξοδος D, Ολίσθηση E μία θέση αριστερά Έξοδος E, Ολίσθηση G μία θέση αριστερά Έξοδος E, Ολίσθηση E μία θέση αριστερά Ταινία 1: AAADEE

Εξωτερική Ταξινόμηση G I N O R S T G G I M N N R E L M P X Ταινία 1: AAADEEE G I N O R S T G G I M N N R L M P X Ταινία 1: AAADEEEG I N O R S T G G I M N N R L M P X Έξοδος E, Ολίσθηση L μία θέση αριστερά Έξοδος G, Ολίσθηση I μία θέση αριστερά Έξοδος G, Ολίσθηση G μία θέση αριστερά Ταινία 1: AAADEEEGG

Εξωτερική Ταξινόμηση I N O R S T G I M N N R L M P X Έξοδος G, Ολίσθηση I μία θέση αριστερά Ταινία 1: AAADEEEGGG I N O R S T I M N N R L M P X Ταινία 1: AAADEEEGGGI N O R S T I M N N R L M P X Έξοδος I, Ολίσθηση N μία θέση αριστερά Έξοδος I, Ολίσθηση M μία θέση αριστερά Ταινία 1: AAADEEEGGGII

Εξωτερική Ταξινόμηση Συνεχίζουμε την προηγούμενη διαδικασία μέχρι να εμφανιστεί ένα και μόνο μπλοκ στην έξοδο, δηλαδή στην Ταινία 1 να εμφανιστούν τα γράμματα της ακολουθίας εισόδου ταξινομημένα. Ταινία 1: AAADEEEGGGIILMMNNNOPRRSTX

Εξωτερική Ταξινόμηση με Επιλογή Αντικατάστασης Παραλλαγή της Φάσης Α του προηγούμενου αλγόριθμου. Η Φάση Β είναι ίδια με του προηγούμενου αλγόριθμου Το μέγεθος των μπλοκ που παράγονται κατά την εφαρμογή του τρέχοντος αλγορίθμου στη Φάση Α είναι κατά μέσο όρο 2-πλάσιο σε σχέση με τον προηγούμενο μειώνοντας τα βήματα συγχώνευσης. Ταξινόμηση Ακολουθίας Εισόδου: EXTERNAL SORTING

Εξωτερική Ταξινόμηση με Επιλογή Αντικατάστασης- Φάση Α HEAP ΡΙΖΑ HEAP ΕΧΤ Ε Ε Ε ΕΧΤ E R EE ΕΠΟΜΕΝΟ ΕΞΟΔΟΣ ΣΧΟΛΙΑ RTX R N EER (N<R μπαίνε με *) N*XT T A EERT (A<T μπαίνει με *) Ν*XA* X L EERTX (1ο μπλοκ-ταινία 1) N*L*A* A* S A* N*L*S* L* O A*L* N*O*S N* R A*L*N* R*O*S O* T A*L*N*O* R*T*S* R* I A*L*N*O*R* (I<R μπαίνει χωρίς *) ΙΤ*S* S* N A*L*N*O*R*S* (N<T μπαίνει χωρίς *) IT*N T* G A*L*N*O*R*S*T* (2o μπλοκ Ταινία 2) IGN - IGN (3ο μπλοκ-ταινία 3)

ΑΝΑΖΗΤΗΣΗ ΠΡΟΒΛΗΜΑ ΛΕΞΙΚΟΥ

ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή 2. Δυαδική Αναζήτηση 3. Αναζήτηση Παρεμβολής 4. Δυαδική Αναζήτηση Παρεμβολής 16 3/5/2 017 16 3/5/2017

Εισαγωγή 17 Έστω σύνολο S U(σύμπαν), x S, inf x Το λεξικό είναι δομή δεδομένων που υποστηρίζει τις πράξεις: Access x : if x S true return inf x else false Στατικές Δομές Delete: S = S {x} Insert: S = S {x} Δυναμικές Δομές Δ 3/5/2 017 17 3/5/2017

Εισαγωγή 18 Insert(x) και Delete(x) είναι καταστρεπτικές πράξεις Εφήμερες Δομές: κάθε πράξη ενημέρωσης αλλάζει την δομή Διαχρονικές Δομές (Persistent): Δομές που υποστηρίζουν Insert(x) και Delete(x) με Μη- Καταστρεπτικό τρόπο και διατηρούν όλες τις εκδόσεις της δομής Μόνο Access -> Μερικώς διαχρονικές Insert, Delete σε προηγούμενες εκδόσεις -> Πλήρως διαχρονικές Κατηγοριοποίηση ως προς το χώρο Συνοπτικές Δομές: ουρά με χρήση πίνακα Εκτενείς Δομές: ουρά με χρήση δεικτών 3/5/2 017 18 3/5/2017

ΤΡΟΠΟΙ ΑΝΑΖΗΤΗΣΗΣ ΣΤΟ ΛΕΞΙΚΟ 19 Γραμμική: next left + 1(μη ταξινομημένα τα στοιχεία) Δυική: next right+left 2 (ταξινομημένα τα στοιχεία) Παρεμβολής: next x S left S left S right right left + left 3/5/2 017 19 3/5/2017

ΔΥΙΔΙΚΗ ΑΝΑΖΗΤΗΣΗ Σε κάθε βήμα του while loop ελέγχεται το μέσο του διαστήματος. Προοδευτικά, καθώς το υπό εξέταση διάστημα υποδιπλασιάζεται, μετά από έναν αριθμό επαναλήψεων, αυτό θα αποκτήσει μήκος 1. Ο αλγόριθμος θα τερματίσει γιατί είτε το μοναδικό στοιχείο θα είναι το x (αυτό που ψάχνουμε) είτε το διάστημα θα γίνει μηδενικό και άρα το x δεν ανήκει στα στοιχεία του. 1 n/4 n/2 n 1 3 2 3/5/2 017 20

ΔΥΙΚΗ ΑΝΑΖΗΤΗΣΗ 2 3 5 11 17 23 29 21 11 x < x > Αναζήτηση του στοιχείου x = 7 Σύγκριση με 11,3,5 x < 3 S[6] 23 x > x < x > 2 5 17 29 Αναζήτηση του στοιχείου x = 17 Σύγκριση με 11,23,17 3/5/2 017 21 3/5/2017

ΑΝΑΖΗΤΗΣΗ ΠΑΡΕΜΒΟΛΗΣ Αναζήτηση ανάλογη της αίσθησης που έχει ο άνθρωπος όταν αναζητά σε ένα λεξικό. next x S left S right S left right left + left Πόσο μεγαλύτερο είναι το ζητούμενο στοιχείο από το αριστερό άκρο Πόσο μεγαλύτερο είναι το δεξί άκρο από το αριστερό Παίζει ρόλο στην απόδοση το πόσο διαφέρουν τα στοιχεία από τα γειτονικά. 3/5/2 017 22

ΑΝΑΖΗΤΗΣΗ ΠΑΡΕΜΒΟΛΗΣ Αναζήτηση του 103 23 left = 1 2 3 4 5 6 right = 7 100 101 102 103 104 105 106 1 Next = ((103-100)/(106-100))*(7-1) + 1= 4 100 101 103 107 108 111 1112 1 Next = ((103-100)/(112-100))*(7-1) + 1= 2 2 Next = ((103-101)/(112-101))*(7-2) + 2= 3 3/5/2 017 23 3/5/2017

ΑΝΑΖΗΤΗΣΗ ΠΑΡΕΜΒΟΛΗΣ Αναζήτηση του 103 24 1 2 3 4 5 6 7 100 101 102 103 214 1821 2004 1 Next = ((103-100)/(2004-100))*(7-1) + 1 = 1 2 Next = ((103-101)/(2004-101))*(7-2) + 2 = 2 3 Next = ((103-102)/(2004-102))*(7-3) + 3 = 3 4 Next = ((103-103)/(2004-103))*(7-2) + 4 = 4 3/5/2 24 017 3/5/2017