ΔΙΑΒΑΣΕ ΤΟ
Κάτι δεν κατάλαβες; Επίλεξε το κομμάτι και πάτα «Ρώτα τον Νεύρωνα». Σου το εξηγεί αμέσως.
Η δυαδική αναζήτηση (Binary Search) απαιτεί ο πίνακας να είναι ταξινομημένος σε αύξουσα σειρά. Η μέθοδος αυτή βρίσκει την τιμή που αναζητάμε, διαιρώντας τον πίνακα στα δύο σε κάθε βήμα και αναζητώντας στο κατάλληλο υποδιάστημα. Εδώ είναι ένα πρόγραμμα για τη δυαδική αναζήτηση ενός αριθμού σε έναν ταξινομημένο μονοδιάστατο πίνακα Α[100]:
ΠΡΟΓΡΑΜΜΑ Δυαδική_Αναζήτηση ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Α[100], Αρχή, Τέλος, Μέση, Στόχος, Θέση, i ΛΟΓΙΚΕΣ: Βρέθηκε ΑΡΧΗ ΓΡΑΨΕ 'ΕΙΣΑΓΕΤΕ ΤΑΞΙΝΟΜΗΜΕΝΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΟΝ ΠΙΝΑΚΑ Α ΜΕ 100 ΑΡΙΘΜΟΥΣ.' ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100 ΓΡΑΨΕ 'ΔΩΣΕ ΤΟ ΣΤΟΙΧΕΙΟ ', i ΔΙΑΒΑΣΕ Α[i] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ 'ΔΩΣΕ ΤΟΝ ΑΡΙΘΜΟ ΠΟΥ ΑΝΑΖΗΤΑΣ:' ΔΙΑΒΑΣΕ Στόχος ! Αρχικοποίηση μεταβλητών για δυαδική αναζήτηση Αρχή <-- 1 Τέλος <-- 100 Βρέθηκε <-- ΨΕΥΔΗΣ Θέση <-- -1 ! Η Θέση είναι -1 αν δεν βρεθεί το στοιχείο ! Δυαδική Αναζήτηση ΟΣΟ Αρχή <= Τέλος ΚΑΙ Βρέθηκε = ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ Μέση <-- (Αρχή + Τέλος) DIV 2 ΑΝ Α[Μέση] = Στόχος ΤΟΤΕ Βρέθηκε <-- ΑΛΗΘΗΣ Θέση <-- Μέση ΑΛΛΙΩΣ_ΑΝ Α[Μέση] < Στόχος ΤΟΤΕ Αρχή <-- Μέση + 1 ΑΛΛΙΩΣ Τέλος <-- Μέση - 1 ΤΕΛΟΣ ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! Έλεγχος και εμφάνιση αποτελέσματος ΑΝ Βρέθηκε = ΑΛΗΘΗΣ ΤΟΤΕ ΓΡΑΨΕ 'Ο ΑΡΙΘΜΟΣ ΒΡΕΘΗΚΕ ΣΤΗ ΘΕΣΗ: ', Θέση ΑΛΛΙΩΣ ΓΡΑΨΕ 'Ο ΑΡΙΘΜΟΣ ΔΕΝ ΒΡΕΘΗΚΕ ΣΤΟΝ ΠΙΝΑΚΑ.' ΤΕΛΟΣ ΑΝ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Εξήγηση 🔍
Αυτό το πρόγραμμα πραγματοποιεί δυαδική αναζήτηση για να βρει έναν αριθμό σε έναν ταξινομημένο πίνακα Α[100].
-
Δήλωση Πίνακα και Εισαγωγή Στοιχείων 🔄
- Το πρόγραμμα ζητά από τον χρήστη να εισάγει 100 ταξινομημένους αριθμούς και τους αποθηκεύει στον πίνακα
Α.
- Το πρόγραμμα ζητά από τον χρήστη να εισάγει 100 ταξινομημένους αριθμούς και τους αποθηκεύει στον πίνακα
-
Αρχικοποίηση Μεταβλητών για Δυαδική Αναζήτηση 🔢
- Οι μεταβλητές
Αρχή,Τέλος, καιΜέσηχρησιμοποιούνται για να καθορίσουν τα όρια αναζήτησης μέσα στον πίνακα. ΑρχήκαιΤέλοςορίζονται στις θέσεις1και100, αντίστοιχα.
- Οι μεταβλητές
-
Δυαδική Αναζήτηση με ΟΣΟ 🔍
- Η επανάληψη ΟΣΟ
Αρχή <= ΤέλοςΚΑΙΒρέθηκε = ΨΕΥΔΗΣεκτελείται μέχρι να βρεθεί το στοιχείο ή να μην υπάρχουν άλλα στοιχεία προς έλεγχο. - Η μεταβλητή
Μέσηυπολογίζεται κάθε φορά ως η μέση τιμή τωνΑρχήκαιΤέλος. - Στη συνέχεια:
- Αν το στοιχείο
Α[Μέση]είναι ίσο με τονΣτόχο, τότε το στοιχείο έχει βρεθεί, και τοΒρέθηκεγίνεταιΑΛΗΘΗΣ. - Αν
Α[Μέση] < Στόχος, σημαίνει ότι οΣτόχοςβρίσκεται στο δεξί μισό του πίνακα, οπότε ορίζουμεΑρχή <-- Μέση + 1. - Αν
Α[Μέση] > Στόχος, σημαίνει ότι οΣτόχοςβρίσκεται στο αριστερό μισό του πίνακα, οπότε ορίζουμεΤέλος <-- Μέση - 1.
- Αν το στοιχείο
- Η επανάληψη ΟΣΟ
-
Έλεγχος και Εμφάνιση Αποτελέσματος 📋
- Αν
Βρέθηκε = ΑΛΗΘΗΣ, εμφανίζεται η θέση όπου βρέθηκε οΣτόχος. - Αν
Βρέθηκε = ΨΕΥΔΗΣ, το πρόγραμμα εμφανίζει μήνυμα ότι ο αριθμός δεν βρέθηκε στον πίνακα.
- Αν
Παράδειγμα Εκτέλεσης 📋
- Αν τα στοιχεία που δίνει ο χρήστης είναι ταξινομημένα:
2, 4, 7, 10, 15, ...και οΣτόχοςείναι10, τότε το πρόγραμμα θα εμφανίσει:Ο ΑΡΙΘΜΟΣ ΒΡΕΘΗΚΕ ΣΤΗ ΘΕΣΗ: 4.