Δυαδική αναζήτηση: Διαφορά μεταξύ των αναθεωρήσεων
Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Χωρίς σύνοψη επεξεργασίας |
|||
Γραμμή 7:
==Περιγραφή==
Ο αλγόριθμος
Επειδή το διάνυσμα είναι σε αύξουσα σειρά, η τιμή του στοιχείου στη θέση i του διανύσματος θα είναι μικρότερη ή ίση από όλα τα στοιχεία δεξιά και μεγαλύτερη ή ίση από όλα τα στοιχεία αριστερά (η ισότητα μπορεί να προκύψει μόνο στην περίπτωση που υπάρχουν επαναλαμβανόμενες τιμές). Έτσι, αν σε μια σύγκριση, το κλειδί είναι μεγαλύτερο από το στοιχείο στη θέση i, δεν έχει νόημα να κάνουμε συγκρίσεις με τα στοιχεία που βρίσκονται σε θέση j<i (δηλαδή, αριστερά από τη θέση i). Αυτήν ακριβώς την ιδιότητα εκμεταλλεύεται η δυαδική αναζήτηση, ώστε να μειώσει κατά το δυνατό τις συγκρίσεις που κάνει.
Γραμμή 23:
Αν (j < i) τότε
επίστρεψε "Δεν βρέθηκε" και τερμάτισε.
μ = <math>
}
Ο παραπάνω ψευδοκώδικας περιγράφει την αναζήτηση του ''κλειδιού'' στο διάνυσμα ''Δ'' μεγέθους n, μεταξύ των θέσεων i και j. Για να γίνει η αναζήτηση σε όλο το διάνυσμα, θέτουμε i=1 και j=n και εκτελούμε τον αλγόριθμο.
|