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

Ξεκίνησε από Loukritia, 28 Ιαν 2010, 09:16:47 ΜΜ

« προηγούμενο - επόμενο »

Loukritia

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

, αντί να κάνω αναζήτηση σε όλο τον πίνακα και αποφασίσω βάσει του pos, έτσι;

Επίσης στον αλγόριθμο όπως δίνεται από το βιβλίο η done =αληθής είναι ισοδύναμη με το pos<>0, οπότε όταν λύνω μια άσκηση, με συμφέρει να χρησ/ώ το πιο κατανοητό done (found στην συγκεκριμένη περίπτωση).Σωστά; Φυσικά αυτό δεν ισχύει για την παραλλαγή με την αναζήτηση σε ταξινομημένο πίνακα, αφού η done έχει άλλη σημασία ( το τέλος της αναζήτησης και όχι αναγκαστικά την εύρεση του αναζητούμενου στοιχείου).
Time is a great teacher, but unfortunately it kills all its pupils ... - Louis Hector Berlioz

gpapargi

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

xaidi

Ευχαριστώ,

P.Tsiotakis

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

Loukritia

Παράθεση από: gpapargi στις 29 Ιαν 2010, 10:48:07 ΠΜ
Για την αναζήτηση σε ταξινομημένο χρησιμοποιώ ακέραια μεταβλητή αντί για λογική. Αρχικά ξεκινάει με 0, αν βρει το στοιχείο γίνεται 1 και αν το προσπεράσει γίνεται 2. Τερματίζει πριν το τελος του πινακα αν αλλάξει το 0. Έτσι ξέρω για πιο λόγο τερμάτισε. Η λογική δεν πλέον δυαδική... αλλά τριαδική  ;)
Ωραία άσκηση!!! Θα την δώσω σε τεστ!!!
Time is a great teacher, but unfortunately it kills all its pupils ... - Louis Hector Berlioz