Η δυαδική αναζήτηση είναι ένας αποδοτικός αλγόριθμος για την εύρεση ενός στοιχείου σε μια ταξινομημένη λίστα. Ο παρακάτω κώδικας υλοποιεί την δυαδική αναζήτηση για την εύρεση ενός ονόματος σε ένα τηλεφωνικό κατάλογο όπου όλα τα ονόματα είναι αποθηκευμένα σε αλφαβητική σειρά.
#Δημιουργία συνάρτησης για την αναζήτηση στον τηλεφωνικό κατάλογο
def binary_search_phonebook(phonebook, name):
left = 0
right = len(phonebook) - 1
while left <= right:
middle = (left + right) // 2
mid_name = phonebook[middle]
if mid_name == name:
return "Το όνομα βρέθηκε στη θέση " + str(middle)
elif mid_name < name:
left = middle + 1
else:
right = middle - 1
return "Το όνομα δεν βρέθηκε στον κατάλογο."
# Παράδειγμα χρήσης
phonebook = ["Ανδρέας", "Βασίλης", "Γιώργος", "Δημήτρης", "Ελένη", "Ζωή"]
name_to_find = "Δημήτρης"
result = binary_search_phonebook(phonebook, name_to_find)
print(result)