Junior — Middle
გთხოვთ ახსნათ ბინარული ძიების ალგორითმის მუშაობის პრინციპი და მისი მახასიათებლები.
sobes.tech AI
პასუხი AI-სგან
ორობითი ძიების ალგორითმი გამოიყენება ელემენტის პოვნისთვის სორტირებულ მასივში ან სიაში. მისი პრინციპი:
- განსაზღვრულია მასივის საშუალო ელემენტი.
- თუ ძებნილი ელემენტი თანაბარია საშუალოსთან, ძიება დასრულებულია.
- თუ ძებნილი ელემენტი ნაკლებია საშუალოსგან, გაგრძელდება მარცხენა ნახევარში.
- თუ მეტია, მარჯვენა ნახევარში.
- პროცესი განმეორებით ან ინტერაქტიულად ხდება, სანამ ელემენტი არ იპოვება ან ძიების დიაპაზონი არ ამოიწურება.
მახასიათებლები:
- მუშაობს მხოლოდ სორტირებულ მონაცემებთან.
- სირთულე — 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("ელემენტი არ მოიძებნა")
}