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