Γεωργαλλίδης Δημήτρης Καθηγητής Πληροφορικής 1Ο Λύκειο Ρόδου ΑΕΠΠ 3ο Κεφάλαιο Γεωργαλλίδης Δημήτρης Καθηγητής Πληροφορικής
ΑΝΑΖΗΤΗΣΗ ΣΕ ΠΙΝΑΚΑ ΣΕΙΡΙΑΚΗ ΔΥΑΔΙΚΗ (Μόνο για ταξινομημένους Πίνακες)
ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ Δίνεται ένας πίνακας Α που περιέχει Ν τυχαίους αριθμούς. Να γραφεί αλγόριθμος που να διαβάζει έναν αριθμό και να ελέγχει αν αυτός υπάρχει στον πίνακα. (ΔΣ4 σελ. 96 Τετράδιο Μαθητή) Υπόδειξη: Η αναζήτηση να σταματά μόλις βρεθεί στοιχείο του πίνακα ίσο με τον αριθμό που διαβάστηκε.
Τι πρόβλημα υπάρχει; Π.χ. αν αριθμός = 7; Διάβασε αριθμός Υπάρχει Για i από 1 μέχρι Ν αν Α[i] = αριθμός τότε Τέλος_επανάληψης Αν υπάρχει 4 16 7 56 3 33
Διάβασε αριθμός Υπάρχει ……… i …… Όσο i <= Ν ….. Υπάρχει = ………. επανάλαβε αν Α[i] = αριθμός τότε Υπάρχει Αληθής Θέση i αλλιώς i ……. τέλος_αν Τέλος_επανάληψης Αν υπάρχει =
ΠΑΡΑΛΛΑΓΗ Α Το στοιχείο που ψάχνουμε μπορεί να υπάρχει περισσότερες από μια φορές (όσο επανάλαβε vs για από μέχρι)
A) Το στοιχείο που ψάχνουμε υπάρχει περισσότερες από μια φορές σε αταξινόμητο πίνακα Διάβασε αριθμός Υπάρχει Για i από 1 μέχρι Ν αν Α[i] = αριθμός τότε Τέλος_επανάληψης αν 4 16 7 56 33 Π.χ. αν αριθμός = 16
ΠΑΡΑΛΛΑΓΗ Β Ο πίνακας μπορεί να είναι ταξινομημένος 4 16 7 56 3 33 3 4 7 16 33 56 Έστω Αριθμός = 2 ο αριθμός που αναζητούμε
Το στοιχείο που ψάχνουμε εμφανίζεται στον πίνακα μια φορά Διάβασε αριθμός Υπάρχει ……… i …… Όσο i <= Ν ….. υπάρχει = ………. επανάλαβε αν Α[i] = αριθμός τότε Υπάρχει …….. θέση i αλλιώς_αν Α[i] … αριθμός τότε υπάρχει ……… αλλιώς i ……. τέλος_αν Τέλος_επανάληψης Αν υπάρχει =
Το στοιχείο που ψάχνουμε μπορεί να υπάρχει περισσότερες από μια φορές Διάβασε αριθμός τέλος ……… i …… υπάρχει ……… Όσο i <= Ν ….. τέλος = ………. επανάλαβε αν Α[i] = αριθμός τότε εμφάνισε i υπάρχει ……….. i ………… αλλιώς_αν Α[i] … αριθμός τότε αλλιώς i ……. τέλος_αν Τέλος_επανάληψης Αν υπάρχει = Το στοιχείο που ψάχνουμε μπορεί να υπάρχει περισσότερες από μια φορές
ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ (Μόνο για ταξινομημένους Πίνακες) Είναι πιο γρήγορη από τη σειριακή!!! Παράδειγμα: Γράφω κρυφά έναν αριθμό από το ένα ως το 100 σε ένα χαρτί. Βρείτε τον αριθμό ρωτώντας: Α) από το 1 ως το 100 (σειριακή) Β) αν είναι < ή > από το 50, το 75 (ή 25), το …(δυαδική)
Η σειριακή αναζήτηση χρησιμοποιείται: Ο πίνακας δεν είναι ταξινομημένος Για μικρούς πίνακες Όταν η αναζήτηση δεν εκτελείται συχνά
Για το σπίτι: Καλό Διάβασμα!!! Σελ. 64 – 65 Α) Βιβλίο Μαθητή Β) Τετράδιο Μαθητή ΔΣ4 σελ. 96 Γ) Ασκήσεις φυλλαδίου (Αναζήτηση) Καλό Διάβασμα!!!