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 // унсур ёфт нашуд
}