Middle
ორმხრივი ძიების სირთულე რა არის და რატომ?
sobes.tech AI
პასუხი AI-სგან
ორ მხარის ძიების სირთულე არის O(log n), სადაც n არის სორტირებული მასივის ელემენტების რაოდენობა. ეს დაკავშირებულია იმასთან, რომ ყოველი ნაბიჯით ალგორითმი იყოფა ორ ნაწილად, უარყოფს ნახევარს ელემენტების, რომლებიც არ შეიძლება შეიცავდეს ძებნილ მნიშვნელობას. ამგვარად, ოპერაციების რაოდენობა ზრდის ლოგარითმულად მონაცემთა ზომასთან.
მაგალითი Go-ში:
func binarySearch(arr []int, target int) int {
left, right := 0, len(arr)-1
for left <= right {
mid := left + (right-left)/2
if arr[mid] == target {
return mid
} else if arr[mid] < target {
left = mid + 1
} else {
right = mid - 1
}
}
return -1 // ელემენტი ვერ მოიძებნა
}