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 // элемент табылган жок
}