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

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

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

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

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

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

Λογιστικές Εφαρμογές Εργαστήριο

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

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

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

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

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

Πληροφοριακά Συστήματα & Περιβάλλον Ασκήσεις

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

Λειτουργικά Συστήματα

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

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

ΔΙΔΑΣΚΩΝ: Δρ. Στυλιανός Τσίτσος

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

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

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

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

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

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

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

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Περιβαλλοντική Χημεία

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

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

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

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

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

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Λογισμός ΙΙ. Χρήστος Θ. Αναστασίου Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

Πληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος

Υδραυλικά & Πνευματικά ΣΑΕ

ΔΙΔΑΣΚΩΝ: Δρ. Στυλιανός Τσίτσος

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία

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

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

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

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

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

Λειτουργικά Συστήματα

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

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

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Μεταγλωττιστές. Ενότητα 3: Τυπικές γλώσσες (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΜΑΘΗΜΑ: Ηλεκτρονικά Ισχύος

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

Οικονομικά Μαθηματικά

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

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

9 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

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

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

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

Πληροφορική ΙΙ Ενότητα 1

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

Συστήματα Αυτομάτου Ελέγχου 1 Ενότητα # 5: Χρήση μετασχηματισμού Laplace για επίλυση ηλεκτρικών κυκλωμάτων Μέθοδοι εντάσεων βρόχων και τάσεων κόμβων

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

2 n N: 0, 1,..., n A n + 1 A

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

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

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

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

Λογιστικές Εφαρμογές Εργαστήριο

ΜΑΘΗΜΑ: ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

Τεχνολογία Πολυμέσων. Ενότητα 8: Pool Table. Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

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

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

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

ΜΑΚΡΟΟΙΚΟΝΟΜΙΚΗ Ενότητα 1: Εισαγωγή: Το αντικείμενο της Μακροοικονομικής Η έννοια και του ΑΕΠ Ονομαστικό και πραγματικό ΑΕΠ

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

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

Συστήματα Αυτομάτου Ελέγχου II

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 1 : Σύνολα & Σχέσεις (1/2) Αλέξανδρος Τζάλλας

Πληροφορική. Εργαστηριακή Ενότητα 1 η : Εισαγωγή στα Λογιστικά Φύλλα με το MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

ΝΟΜΙΣΜΑΤΙΚΗ ΟΙΚΟΝΟΜΙΚΗ ΠΟΛΙΤΙΚΗ. Ενότητα 3: Αγορά Χρήματος και επιτόκια. Γεώργιος Μιχαλόπουλος Τμήμα Λογιστικής-Χρηματοοικονομικής

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

Βιομηχανικοί Ελεγκτές

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Transcript:

Αλγόριθμοι και Δομές Δεδομένων(Θ) Ενότητα 5: ΑΝΑΖΗΤΗΣΗ Ευάγγελος Γ. Ούτσιος ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Αλγόριθμοι και Δομές Δεδομένων- ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 2

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

Αναζήτηση (searching) είναι η διεργασία της εύρεσης κάποιας συγκεκριμένης τιμής ανάμεσα από ένα σύνολο τιμών. Το πρόβλημα της αναζήτησης είναι ένα από τα πιο ενδιαφέροντα προβλήματα της Επιστήμης των Υπολογιστών λόγω της μεγάλης πρακτικότητάς του.

ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ Η πιο απλή μέθοδος αναζήτησης ενός στοιχείου σε μία δομή δεδομένων είναι η σειριακή αναζήτηση. Γίνεται προσπέλαση των στοιχείων της δομής από το πρώτο μέχρι το τελευταίο. Κάθε φορά ελέγχεται το στοιχείο της τρέχουσας θέσης αν είναι το ζητούμενο, οπότε και τελειώνει η αναζήτηση. Αν προσπελασθεί όλη η δομή και δεν βρεθεί το ζητούμενο στοιχείο, τότε η αναζήτηση θεωρείται ανεπιτυχής.

1) Επαναληπτική έκδοση Αλγόριθμος Σειριακή_αναζήτηση_1 Δεδομένα p[n], i, key, found, position found = false position = -1 i = 0 ΟΣΟ (found = = false ) ΚΑΙ (i < N) AN p[i] = = key TOTE found = true position = i i = i+1 ΤΕΛΟΣ ΕΠΑΝΑΛΗΨΗΣ AN found = = true ΤΟΤΕ ΕΜΦΑΝΙΣΕ position ΕΜΦΑΝΙΣΕ Δεν υπάρχει ΤΕΛΟΣ Σειριακή_αναζήτηση_1

2) Αναδρομική έκδοση Αλγόριθμος Σειριακή_αναζήτηση_2 Δεδομένα p[n], i, key, found, position ΑΝ i > N ΤΟΤΕ found = false ΑN p[i] = = key TOTE found = true position = i i = i+1 Σειριακή_αναζήτηση_2(p,key,found,position) ΤΕΛΟΣ Σειριακή_αναζήτηση_2 AN found = = true ΤΟΤΕ ΕΜΦΑΝΙΣΕ position ΕΜΦΑΝΙΣΕ Δεν υπάρχει

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ Όταν τα στοιχεία του πίνακα είναι ταξινομημένα, τότε είναι δυνατόν να επιταχυνθεί η διαδικασία αναζήτησης, εφαρμόζοντας τη δυαδική αναζήτηση. Πιο συγκεκριμένα, συγκρίνεται η τιμή του ζητούμενου στοιχείου με το μεσαίο στοιχείο του πίνακα. Αν είναι ίσα, τότε η αναζήτηση έχει τελειώσει. Αν όχι, τότε μπορεί ο μισός πίνακας να εξαιρεθεί από τις επόμενες αναζητήσεις γιατί αποκλείεται να περιέχει το ζητούμενο στοιχείο, εφόσον αυτός είναι ταξινομημένος. Η διαδικασία αυτή επαναλαμβάνεται μέχρις ότου βρεθεί το στοιχείο ή διαπιστωθεί ότι δεν υπάρχει.

1) Επαναληπτική έκδοση Αλγόριθμος Δυαδική_αναζήτηση_1 Δεδομένα p[n], mid, left, right, key, found, position found = false position = -1 left = 0 right = N-1 ΟΣΟ (found = = false ) ΚΑΙ (left <= right) mid = (left+right) / 2 AN key = = p[mid] TOTE found = true position = mid AN key < p[mid] TOTE right = mid-1 AΛΛΙΩΣ left = mid+1 ΤΕΛΟΣ ΕΠΑΝΑΛΗΨΗΣ AN found = = true ΤΟΤΕ ΕΜΦΑΝΙΣΕ position ΕΜΦΑΝΙΣΕ Δεν υπάρχει ΤΕΛΟΣ Δυαδική_αναζήτηση_1

2) Αναδρομική έκδοση Αλγόριθμος Δυαδική_αναζήτηση_2 Δεδομένα p[n], mid, left, right, key, position ΑΝ left > right ΤΟΤΕ position = -1 mid = (left + right) / 2 ΑN p[mid] = = key TOTE position = mid AN key < p[mid] position = Δυαδική_αναζήτηση_2(left, mid-1, p, key) position = Δυαδική_αναζήτηση_2(mid+1, right, p, key) ΤΕΛΟΣ Δυαδική_αναζήτηση_2 AN position = = -1 ΤΟΤΕ ΕΜΦΑΝΙΣΕ Δεν υπάρχει ΕΜΦΑΝΙΣΕ position