Junior — Middle
Vysvetlite princíp fungovania binárneho vyhľadávacieho algoritmu a jeho vlastnosti.
sobes.tech AI
Odpoveď od AI
Binárny vyhľadávací algoritmus sa používa na nájdenie prvku v zoradenom poli alebo zozname. Jeho princíp:
- Určí sa stredný prvok poľa.
- Ak je hľadaný prvok rovný stredu, vyhľadávanie sa ukončí.
- Ak je hľadaný prvok menší ako stred, pokračuje sa v ľavej polovici poľa.
- Ak je väčší, v pravej polovici.
- Proces sa opakuje rekurzívne alebo iteratívne, kým sa prvok nenájde alebo sa nevyčerpá rozsah vyhľadávania.
Vlastnosti:
- Funguje iba s zoradenými dátami.
- Zložitosť — O(log n), oveľa rýchlejšie ako lineárne vyhľadávanie.
- Vyžaduje prístup k prvkom podľa indexu (napríklad, pole).
Príklad v Swift:
func binarySearch(_ array: [Int], _ target: Int) -> Int? {
var left = 0
var right = array.count - 1
while left <= right {
let mid = (left + right) / 2
if array[mid] == target {
return mid
} else if array[mid] < target {
left = mid + 1
} else {
right = mid - 1
}
}
return nil
}
let numbers = [1, 3, 5, 7, 9]
if let index = binarySearch(numbers, 7) {
print("Prvok nájdený na pozícii \(index)")
} else {
print("Prvok nenajdený")
}