Junior — Middle
Обяснете принципа на работа на алгоритъма за двоично търсене и неговите особености.
sobes.tech AI
Отговор от AI
Алгоритъмът за двоично търсене се използва за намиране на елемент в сортиран масив или списък. Неговият принцип:
- Определя се средният елемент на масива.
- Ако търсеният елемент е равен на средния, търсенето приключва.
- Ако търсеният елемент е по-малък от средния, продължава се в лявата половина на масива.
- Ако е по-голям, в дясната половина.
- Процесът се повтаря рекурсивно или итеративно, докато елементът не бъде намерен или диапазонът на търсене не бъде изчерпан.
Характеристики:
- Работи само с сортирани данни.
- Сложност — O(log n), значително по-бърз от линейното търсене.
- Изисква достъп до елементите по индекс (например, масив).
Пример на 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("Елементът е намерен на позиция \(index)")
} else {
print("Елементът не е намерен")
}