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("Элемент табылган жок")
}