Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Διδάσκων: Δρ. Τσίντζα Παναγιώτα

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Διδάσκων: Δρ. Τσίντζα Παναγιώτα"— Μεταγράφημα παρουσίασης:

1 Διδάσκων: Δρ. Τσίντζα Παναγιώτα
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Διδάσκων: Δρ. Τσίντζα Παναγιώτα

2 ΑΝΑΖΗΤΗΣΗ

3 Το πρόβλημα της αναζήτησης
Εύρεση ενός στοιχείου από ένα σύνολο στοιχείων. 2 βασικές κατηγορίες μεθόδων αναζήτησης ανάλογα με το Αν το σύνολο αυτό των στοιχείων είναι αποθηκευμένο στην κύρια μνήμη ή Αν το σύνολο αυτό των στοιχείων είναι αποθηκευμένο στην δευτερεύουσα μνήμη

4 Μέθοδοι αναζήτησης στην κύρια μνήμη
Στην κατηγορία μεθόδων αναζήτησης στην κύρια μνήμη  αναζήτηση είτε ενός στοιχείου σε πίνακα ή σε ουρά ή σε στοίβα είτε ενός κόμβου σε λίστα ή δένδρο. Μέθοδοι εύκολοι τόσο στην ανάπτυξη όσο και στην υλοποίηση τους.

5 Μέθοδοι αναζήτησης στην δευτερεύουσα μνήμη
Λαμβάνεται υπόψη ο τρόπος αποθήκευσης των στοιχείων. Τα στοιχεία είναι αποθηκευμένα ως ένα σύνολο εγγραφών που η κάθε μία έχει ένα σύνολο πεδίων. Το σύνολο των εγγραφών αποτελούν τα αρχεία δεδομένων. Σε κάθε εγγραφή κάποιο από τα πεδία αποτελεί το πρωτεύον κλειδί (primary key)  ορίζει μονοσήμαντα (με μοναδικό τρόπο) την εγγραφή. Έτσι η αναζήτηση ενός στοιχείου ( μιας εγγραφής) γίνεται με αναζήτηση του πρωτεύοντος κλειδιού.  Όταν το κλειδί βρεθεί επιστρέφεται το σύνολο των πεδίων της εγγραφής.

6 Αναζήτηση Γραμμική αναζήτηση (sequential search)
Αναζήτηση κατά ομάδες (Block search) Δυαδική αναζήτηση (Binary search) Αναζήτηση παρεμβολής (interpolation search) Θα χρησιμοποιηθεί η δομή πίνακα για την αναζήτηση

7 Γραμμική Αναζήτηση

8 Βασική ιδέα του αλγόριθμου γραμμικής αναζήτησης
Είσοδος: ένας πίνακα ο οποίος περιέχει n στοιχεία ταξινομημένα ή μη. Έξοδος: η αναζήτηση μιας τιμής x μέσα στον πίνακα. Αν η τιμή αυτή βρεθεί, επιστρέφεται η θέση της τιμής στον πίνακα αλλιώς επιστρέφεται η τιμή 0. Μέθοδος: διατρέχει όλα τα στοιχεία του πίνακα συγκρίνοντας τα με την τιμή που αναζητείται

9 Ψευδικώδικας γραμμικής αναζήτησης
Αλγόριθμος Παρ_1 Είσοδος (Πίνακας, n, x) // ο πίνακας, το μέγεθος του, το στοιχείο που ψάχνουμε Βρέθηκε  ψευδής // λογική μεταβλητή (έξοδος αλγόριθμου) Θέση  0 // μεταβλητή θέσης στοιχείου στο πίνακα (έξοδος αλγόριθμου) Μετρητής 1 Διαπέρασε τον Πίνακα για Όσο (Βρέθηκε = ψευδής) και (Μετρητής <= n) Αν Πίνακας[Μετρητής] = x τότε Βρέθηκε  αληθής Θέση  Μετρητής Αλλιώς Μετρητής  Μετρητής + 1 Τέλος Αν Τέλος Επανάληψης Αποτελέσματα (Βρέθηκε, Θέση) Τέλος Παρ_1

10 Πλεονεκτήματα vs Μειονεκτήματα
Πλεονέκτημα: απλός και άμεσος τρόπος αναζήτησης Μειονέκτημα: η απόδοση της μεθόδου αυτή είναι από τις χειρότερες ο χρόνος της χειρότερης περίπτωσης υπολογίζεται όταν δεν υπάρχει το στοιχείο που αναζητούμε στην δομή μας (ή είναι το τελευταίο που εξετάζεται). η γραμμική μέθοδος θα απαιτήσει n συγκρίσεις αν τα στοιχεία είναι αταξινόμητα ή n/2 αν είναι ταξινομημένα. Στην γενική περίπτωση, ο μέσος αριθμός συγκρίσεων είναι n/2.

11 Αναζήτηση κατά ομάδες (Block search)

12 Βασική ιδέα του αλγόριθμου Αναζήτησης κατά ομάδες
Παραλλαγή της γραμμικής αναζήτησης Στοιχεία τα οποία είναι ταξινομημένα (θα θεωρήσουμε αύξουσα ταξινόμηση) Τα στοιχεία χωρίζονται σε ομάδες. Κάθε μία ομάδα έχει ένα βασικό στοιχείο που είναι το πρώτο αυτής. Ο αλγόριθμος της αναζήτησης κατά ομάδες συγκρίνει το στοιχείο που ψάχνουμε με κάθε ένα από τα πρώτα στοιχεία κάθε ομάδας. Συγκρίνεται με το πρώτο στοιχείο της πρώτης ομάδας. Αν είναι μικρότερο αυτού τότε δεν υπάρχει στην δομή. Στην αντίθετη περίπτωση συγκρίνεται με το πρώτο στοιχείο της δεύτερης ομάδας. Αν είναι μικρότερο αυτού τότε αν υπάρχει πρέπει να βρίσκεται ανάμεσα στα στοιχεία της πρώτης ομάδας. Στην αντίθετη περίπτωση συγκρίνεται με το πρώτο στοιχείο της τρίτης ομάδας κ.ο.κ.

13 Πολυπλοκότητα Έστω πίνακας n στοιχείων χωρισμένα σε m ομάδες.
Στην γενική περίπτωση, ο μέσος αριθμός συγκρίσεων είναι n/(2m) + m/2. H απόδοση του αλγορίθμου εξαρτάται τόσο από το πλήθος των ομάδων αλλά και του αριθμού των στοιχείων που περιέχει κάθε μία από αυτές. Ο αλγόριθμος είναι βέλτιστος όταν κάθε μία ομάδα περιέχει στοιχεία √n

14 Δυαδική αναζήτηση (Binary search)

15 Βασική ιδέα του αλγόριθμου Δυαδικής Αναζήτησης
Χρησιμοποιεί την τεχνική “Διαίρει και Βασίλευε” βασίζεται στην λογική της κατάτμησης του προβλήματος σε μικρότερα ομοειδή προβλήματα έτσι ώστε ο συνδυασμός των μερικών λύσεων να δώσει την συνολική λύση του προβλήματος Η τεχνική Διαίρει και Βασίλευε βασίζεται σε 3 βήματα Διαίρει (divide) : το αρχικό πρόβλημα διαιρείται σε συγκεκριμένο πλήθος ομοειδών υποπροβλημάτων ή αλλιώς στιγμιότυπων. Βασίλευε (conquer) : κάθε στιγμιότυπο του προβλήματος επιλύεται ανεξάρτητα και με αναδρομικό τρόπο. Συνδύασε (combine) : όλες οι λύσεις από κάθε στιγμιότυπο συνδυάζονται εντός πολυωνυμικού χρόνου για την επίλυση του συνολικού προβλήματος.

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

17 Πολυπλοκότητα Έστω ότι η δομή περιέχει n στοιχεία
ο χρόνος της χειρότερης περίπτωσης υπολογίζεται όταν δεν υπάρχει το στοιχείο που αναζητούμε στην δομή μας (ή είναι το τελευταίο που εξετάζεται). Στην περίπτωση αυτή η δυαδική μέθοδος θα απαιτήσει logn+1 συγκρίσεις, άρα O(logn).

18 Αναζήτηση παρεμβολής (interpolation search)

19 Βασική ιδέα του αλγόριθμου Αναζήτησης παρεμβολής
Βασίζεται στην δυαδική αναζήτηση  εφαρμόζεται σε ταξινομημένα στοιχεία. Λαμβάνει υπόψη της την κατανομή των στοιχείων. Ακολουθεί τον τρόπο που ένας άνθρωπος ψάχνει σε ένα λεξικό. Ο άνθρωπος δεν πάει κατευθείαν στο μέσο έστω n του λεξικού συγκρίνει, μετά στο n/2 ή 3n/4 αντίστοιχα κ.ο.κ. όπως συμβαίνει στην δυαδική αναζήτηση αλλά: Ανοίγει το λεξικό αρχικά ανάλογα με το γράμμα που τον ενδιαφέρει. Αν το B πηγαίνει στην αρχή κ.οκ. Στη συνέχεια κινείται κατά ομάδες ανάλογα αν η λέξη είναι μεγαλύτερη ή μικρότερη παραλείποντας σελίδες. Επομένως ο αλγόριθμος λαμβάνει υπόψη το περιεχόμενο του πίνακα σε σύγκριση με το στοιχείο αναζήτησης, προκειμένου να καθορίσει το σημείο αναζήτησης.

20 (x-S[left]) / (S[right-S[left]).
Ο αλγόριθμος Είσοδος: πίνακα S ο οποίος περιέχει n στοιχεία ταξινομημένα, το μέγεθος το πίνακα, το στοιχείο x που ψάχνουμε. Έξοδος του αλγορίθμου: Αν η τιμή x βρεθεί, επιστρέφεται η θέση της τιμής στον πίνακα αλλιώς επιστρέφεται η τιμή 0. Σε κάθε περίπτωση το σημείο αναζήτησης βρίσκεται από την σχέση : (x-S[left]) / (S[right-S[left]). Έτσι, αρχικά το x αναζητείται στα στοιχεία ανάμεσα στα S[1] και S[n]. Άρα το σημείο αναζήτησης – σύγκρισης είναι το : (x-S[1]) / (S[n-S[1]).

21 Πολυπλοκότητα αλγόριθμου
Όπως πάντα ο χρόνος της χειρότερης περίπτωσης στην αναζήτηση παρεμβολής υπολογίζεται όταν δεν υπάρχει το στοιχείο που αναζητούμε στην δομή μας (ή είναι το τελευταίο που εξετάζεται). Στην χειρότερη περίπτωση θα απαιτήσει O(n) συγκρίσεις. Στην γενική περίπτωση, ο μέσος χρόνος είναι : O(loglogn). Η αναζήτηση παρεμβολής σε σύγκριση με την δυαδική μέθοδο φαίνεται να υπερισχύει. Με βάση πειραματικά αποτελέσματα, αποδεικνύεται όμως ότι είναι προτιμότερο τα πρώτα βήματα να εκτελούνται με αναζήτηση παρεμβολής, έτσι ώστε το διάστημα να μειώνεται δραματικά, και στη συνέχεια να εκτελείται δυική αναζήτηση.


Κατέβασμα ppt "Διδάσκων: Δρ. Τσίντζα Παναγιώτα"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google