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("Element იპოვნა პოზიციაზე \(index)")
} else {
    print("ელემენტი არ მოიძებნა")
}