Καλησπέρα,
Στο Θέμα 4, Εσπερινών 2008 ταξινομούμε με φθίνουσα σειρά ψήφων τους 20 υποψήφιους μιας εκλογικής διαδικασίας όπου εκλέγονται 7 άτομα. Όταν μας ζητείται να κάνουμε αναζήτηση στους εκλεχθέντες ενός ονόματος, θα μπορούσαμε κάλλιστα να κάνουμε σειριακή αναζήτηση στις 7 πρώτες θέσεις του πίνακα, δηλ.
Όσο i <=7 και done=ψευδής επαναλαβε
, αντί να κάνω αναζήτηση σε όλο τον πίνακα και αποφασίσω βάσει του pos, έτσι;
Επίσης στον αλγόριθμο όπως δίνεται από το βιβλίο η done =αληθής είναι ισοδύναμη με το pos<>0, οπότε όταν λύνω μια άσκηση, με συμφέρει να χρησ/ώ το πιο κατανοητό done (found στην συγκεκριμένη περίπτωση).Σωστά; Φυσικά αυτό δεν ισχύει για την παραλλαγή με την αναζήτηση σε ταξινομημένο πίνακα, αφού η done έχει άλλη σημασία ( το τέλος της αναζήτησης και όχι αναγκαστικά την εύρεση του αναζητούμενου στοιχείου).
Για την αναζήτηση σε ταξινομημένο χρησιμοποιώ ακέραια μεταβλητή αντί για λογική. Αρχικά ξεκινάει με 0, αν βρει το στοιχείο γίνεται 1 και αν το προσπεράσει γίνεται 2. Τερματίζει πριν το τελος του πινακα αν αλλάξει το 0. Έτσι ξέρω για πιο λόγο τερμάτισε. Η λογική δεν πλέον δυαδική... αλλά τριαδική ;)
!!!!!!
Ωραίος!
όμως έτσι, αν δεν βρεθεί στις 7 πρώτες θέσεις ΔΕΝ ΕΚΠΛΕΓΕΤΑΙ
ωστόσο μπορεί να υπάρχει στις επόμενες θέσεις, ή να μην υπάρχει καν (δόθηκε λάθος όνομα)
αυτά δε ζητά η άσκηση να διερευνηθούν βέβαια
Παράθεση από: gpapargi στις 29 Ιαν 2010, 10:48:07 ΠΜ
Για την αναζήτηση σε ταξινομημένο χρησιμοποιώ ακέραια μεταβλητή αντί για λογική. Αρχικά ξεκινάει με 0, αν βρει το στοιχείο γίνεται 1 και αν το προσπεράσει γίνεται 2. Τερματίζει πριν το τελος του πινακα αν αλλάξει το 0. Έτσι ξέρω για πιο λόγο τερμάτισε. Η λογική δεν πλέον δυαδική... αλλά τριαδική ;)
Ωραία άσκηση!!! Θα την δώσω σε τεστ!!!