Κώδικας
Η δυαδική αναζήτηση (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
.
Ο Ευκλείδης λειτουργεί μέσω τεχνητής νοημσύνης