Sobes.tech
Middle+
44

# Περιγραφή του προβλήματος # Δίνεται μια διαδοχή ακέραιων αριθμών ταξινομημένη σε αύξουσα σειρά. # Είναι απαραίτητο να υλοποιήσετε μια λειτουργία που πραγματοποιεί δυαδική αναζήτηση ενός στοιχείου σε αυτήν τη διαδοχή. # Η λειτουργία πρέπει: # 1. Να δέχεται δύο επιχειρήματα: # - μια ταξινομημένη λίστα αριθμών, # - μια τιμή στόχο για αναζήτηση. # 2. Να επιστρέφει το δείκτη του βρεθέντος στοιχείου, αν το στοιχείο υπάρχει. # 3. Να επιστρέφει -1, αν το στοιχείο δεν υπάρχει στη λίστα. # Απαιτήσεις # - Η λύση πρέπει να είναι επαναληπτική. # - Είναι σημαντικό να διατηρηθεί η πολυπλοκότητα O(log n). # - Ο κώδικας πρέπει να γραφεί σε Python 3 και να ακολουθεί τις βασικές αρχές καθαρού κώδικα.

Εταιρείες όπου ρωτήθηκαν
devar

Απάντηση από AI

sobes.tech AI

python from typing import List

def binary_search(arr: List[int], target: int) -> int: left, right = 0, len(arr) - 1 while left <= right: mid = left + (right - left) // 2 if arr[mid] == target: return mid elif arr[mid] < target: left = mid + 1 else: right = mid - 1 return -1

Пример использования:

arr = [1, 3, 5, 7, 9]

print(binary_search(arr, 5)) # Выведет 2

print(binary_search(arr, 6)) # Выведет -1