Middle
Kuidas töötab binaarotsing järjestatud nimekirjas?
sobes.tech AI
Vastus AI-lt
Kakupuu otsing on algoritm, mis kasutatakse elementide leidmiseks sorteeritud nimekirjas, mille keerukus on logaritmiline O(log n). See töötab põhimõttel "jaga ja valitse":
- Määratakse nimekirja keskne element.
- Kui otsitav element on võrdne keskmega, otsing lõpeb.
- Kui otsitav element on väiksem kui keskne, jätkatakse otsingut vasakul poolel nimekirjast.
- Kui suurem, siis paremal poolel.
Protsess kordub rekursiivselt või iteratiivselt, kuni element leitakse või otsingu vahemik ammendub.
Näide Go keeles:
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 // elementi ei leitud
}