Sobes.tech
Junior — 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 // ელემენტი ვერ მოიძებნა
}