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("Элемент ёфт нашуд")
}