Γενικό Λύκειο > Αναζήτηση

Σειριακή Αναζήτηση

(1/1)

Loukritia:
Καλησπέρα,
Στο Θέμα 4, Εσπερινών 2008 ταξινομούμε με φθίνουσα σειρά ψήφων τους 20 υποψήφιους μιας εκλογικής διαδικασίας όπου εκλέγονται 7 άτομα. Όταν μας ζητείται να κάνουμε αναζήτηση στους εκλεχθέντες ενός ονόματος, θα μπορούσαμε κάλλιστα να κάνουμε  σειριακή αναζήτηση στις 7 πρώτες θέσεις  του πίνακα, δηλ.
 
--- Κώδικας: --- Όσο i <=7 και done=ψευδής επαναλαβε
--- Τέλος κώδικα ---
, αντί να κάνω αναζήτηση σε όλο τον πίνακα και αποφασίσω βάσει του pos, έτσι;

Επίσης στον αλγόριθμο όπως δίνεται από το βιβλίο η done =αληθής είναι ισοδύναμη με το pos<>0, οπότε όταν λύνω μια άσκηση, με συμφέρει να χρησ/ώ το πιο κατανοητό done (found στην συγκεκριμένη περίπτωση).Σωστά; Φυσικά αυτό δεν ισχύει για την παραλλαγή με την αναζήτηση σε ταξινομημένο πίνακα, αφού η done έχει άλλη σημασία ( το τέλος της αναζήτησης και όχι αναγκαστικά την εύρεση του αναζητούμενου στοιχείου).

gpapargi:
Για την αναζήτηση σε ταξινομημένο χρησιμοποιώ ακέραια μεταβλητή αντί για λογική. Αρχικά ξεκινάει με 0, αν βρει το στοιχείο γίνεται 1 και αν το προσπεράσει γίνεται 2. Τερματίζει πριν το τελος του πινακα αν αλλάξει το 0. Έτσι ξέρω για πιο λόγο τερμάτισε. Η λογική δεν πλέον δυαδική... αλλά τριαδική  ;)

xaidi:
!!!!!!
Ωραίος!

P.Tsiotakis:
όμως έτσι, αν δεν βρεθεί στις 7 πρώτες θέσεις ΔΕΝ ΕΚΠΛΕΓΕΤΑΙ
ωστόσο μπορεί να υπάρχει στις επόμενες θέσεις, ή να μην υπάρχει καν (δόθηκε λάθος όνομα)
αυτά δε ζητά η άσκηση να διερευνηθούν βέβαια

Loukritia:

--- Παράθεση από: gpapargi στις 29 Ιαν 2010, 10:48:07 πμ ---Για την αναζήτηση σε ταξινομημένο χρησιμοποιώ ακέραια μεταβλητή αντί για λογική. Αρχικά ξεκινάει με 0, αν βρει το στοιχείο γίνεται 1 και αν το προσπεράσει γίνεται 2. Τερματίζει πριν το τελος του πινακα αν αλλάξει το 0. Έτσι ξέρω για πιο λόγο τερμάτισε. Η λογική δεν πλέον δυαδική... αλλά τριαδική  ;)

--- Τέλος παράθεσης ---
Ωραία άσκηση!!! Θα την δώσω σε τεστ!!!

Πλοήγηση

[0] Λίστα μηνυμάτων

Μετάβαση στην πλήρη έκδοση