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 // елементът не е намерен
}