Junior — Middle
Kako se određuje vremenska složenost algoritma binarnog pretraživanja?
sobes.tech АИ
Одговор од АИ
Vremenska složenost binarnog pretraživačkog algoritma definisana je kao O(log n), gde n predstavlja broj elemenata u sortiranom nizu. To je zato što na svakom koraku algoritam deli opseg pretraživanja na pola, smanjujući broj razmatranih elemenata na polovinu, dok ne pronađe traženi element ili potvrdi njegovu odsutnost.
Primer u 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 // element nije pronađen
}