Sobes.tech
Junior — Middle

Ikki tomonlama qidiruv algoritmining ishlash prinsipi va uning xususiyatlarini tushuntiring.

sobes.tech AI

AIdan javob

Ikili qidiruv algoritmi, tartiblangan massiv yoki ro'yxatda elementni topish uchun ishlatiladi. Uning prinsipi:

  1. Massivning o'rtacha elementi aniqlanadi.
  2. Agar qidirilayotgan element o'rtacha elementga teng bo'lsa, qidiruv tugaydi.
  3. Agar qidirilayotgan element o'rtacha elementdan kichik bo'lsa, qidiruv massivning chap yarimida davom etadi.
  4. Agar katta bo'lsa, o'ng yarimda.
  5. Jarayon rekursiv yoki iterativ tarzda takrorlanadi, element topilmaguncha yoki qidiruv diapazasi tugaguncha.

Xususiyatlar:

  • Faqat tartiblangan ma'lumotlar bilan ishlaydi.
  • Murakkablik — O(log n), chiziqli qidiruvdan ancha tezroq.
  • Indeks bo'yicha elementlarga kirish talab qilinadi (masalan, massiv).

Swiftda misol:

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("Element topildi pozitsiyada \(index)")
} else {
    print("Element topilmadi")
}