Sobes.tech
Junior — Middle

Обяснете принципа на работа на алгоритъма за двоично търсене и неговите особености.

sobes.tech AI

Отговор от AI

Алгоритъмът за двоично търсене се използва за намиране на елемент в сортиран масив или списък. Неговият принцип:

  1. Определя се средният елемент на масива.
  2. Ако търсеният елемент е равен на средния, търсенето приключва.
  3. Ако търсеният елемент е по-малък от средния, продължава се в лявата половина на масива.
  4. Ако е по-голям, в дясната половина.
  5. Процесът се повтаря рекурсивно или итеративно, докато елементът не бъде намерен или диапазонът на търсене не бъде изчерпан.

Характеристики:

  • Работи само с сортирани данни.
  • Сложност — 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("Елементът не е намерен")
}