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