Junior
Ako funguje algoritmus binárneho vyhľadávania?
sobes.tech AI
Odpoveď od AI
Binárne vyhľadávanie funguje analýzou zoradeného poľa a opakovaným delením vyhľadávacieho intervalu na polovice.
- Inicializácia: Určí sa ľavý a pravý okraj vyhľadávacieho intervalu (zvyčajne začiatok a koniec poľa).
- Porovnanie: Vypočíta sa index stredu intervalu. Hodnota na tomto indexe sa porovná s hľadaným prvkom.
- Zmenšenie intervalu:
- Ak sa hodnota uprostred zhoduje s hľadaným, prvok je nájdený.
- Ak je hodnota uprostred väčšia ako hľadaný, vyhľadávanie pokračuje v ľavej polovici intervalu. Pravý okraj sa posunie na stred - 1.
- Ak je hodnota uprostred menšia ako hľadaný, vyhľadávanie pokračuje v pravej polovici intervalu. Ľavý okraj sa posunie na stred + 1.
- Opakovanie: Kroky 2 a 3 sa opakujú, kým sa nenájde prvok alebo intervalu sa nezmení na prázdny.
Zložitosť algoritmu je O(log n), čo je oveľa efektívnejšie ako lineárne vyhľadávanie pre veľké polia.
Príklad implementácie v Pythone:
def binary_search(arr, target):
"""
Implementácia binárneho vyhľadávania.
Prijíma zoradené pole a hľadanú hodnotu.
Vráti index prvku alebo -1, ak nie je nájdený.
"""
ľavá, pravá = 0, len(arr) - 1
while ľavá <= pravá:
stred = (ľavá + pravá) // 2 # Výpočet indexu stredu
stredná_hodnota = arr[stred] # Získanie hodnoty uprostred
if stredná_hodnota == target:
return stred # Prvok nájdený
elif stredná_hodnota < target:
ľavá = stred + 1 # Vyhľadávanie vpravo
else: # stredná_hodnota > target
pravá = stred - 1 # Vyhľadávanie vľavo
return -1 # Prvok nenájdený