Junior
Jak funguje algoritmus binárního vyhledávání?
sobes.tech AI
Odpověď od AI
Binární vyhledávání funguje analýzou seřazeného pole a opakovaným dělením vyhledávacího intervalu na poloviny.
- Inicializace: Určí se levý a pravý okraj vyhledávacího intervalu (obvykle začátek a konec pole).
- Porovnání: Vypočítá se index středu intervalu. Hodnota na tomto indexu se porovná s hledaným prvkem.
- Zmenšení intervalu:
- Pokud se hodnota uprostřed shoduje s hledaným, prvek byl nalezen.
- Pokud je hodnota uprostřed větší než hledaný, pokračuje se v levé polovině intervalu. Pravý okraj se posune na střed - 1.
- Pokud je hodnota uprostřed menší než hledaný, pokračuje se v pravé polovině intervalu. Levý okraj se posune na střed + 1.
- Opakování: Kroky 2 a 3 se opakují, dokud se prvek nenajde nebo intervalu nezbývá.
Složitost algoritmu je O(log n), což je mnohem efektivnější než lineární vyhledávání u velkých polí.
Příklad implementace v Pythonu:
def binary_search(arr, target):
"""
Implementace binárního vyhledávání.
Přijímá seřazené pole a hledanou hodnotu.
Vrací index prvku nebo -1, pokud není nalezen.
"""
levá, pravá = 0, len(arr) - 1
while levá <= pravá:
střed = (levá + pravá) // 2 # Výpočet indexu středu
střední_hodnota = arr[střed] # Získání hodnoty uprostřed
if střední_hodnota == target:
return střed # Prvek nalezen
elif střední_hodnota < target:
levá = střed + 1 # Hledaný je větší, hledání v pravé části
else: # střední_hodnota > target
pravá = střed - 1 # Hledaný je menší, hledání v levé části
return -1 # Prvek nenalezen