Sobes.tech
Junior — Middle

Kā tiek noteikta binārās meklēšanas algoritma laika sarežģītība?

sobes.tech AI

Atbilde no AI

Binārās meklēšanas algoritma laika sarežģītība ir definēta kā O(log n), kur n ir sakārtota masīva elementu skaits. Tas ir tāpēc, ka katrā solī algoritms sadala meklēšanas apgabalu uz pusi, samazinot apskatāmo elementu skaitu uz pusi, līdz tiek atrasts meklētais elements vai apstiprināta tā neesamība.

Piemērs Go valodā:

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 // elements not found
}