Middle
Тартиптелген тизмеде бинардык издөө кантип иштейт?
sobes.tech AI
AIден жооп
Икки жактуу издөө — бул сорттолгон тизмеде элементти табуу үчүн колдонулган алгоритм, логарифмдик татаалдыгы O(log 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 // элемент табылган жок
}