Junior — Middle
İkili arama algoritmasının zaman karmaşıklığı nasıl belirlenir?
sobes.tech yapay zeka
AI'dan gelen yanıt
İkili arama algoritmasının zaman karmaşıklığı, sıralanmış dizideki öğe sayısı n ise O(log n) olarak tanımlanır. Bu, algoritmanın her adımda arama alanını ikiye bölmesi nedeniyle, incelenen öğe sayısının yarıya indirilmesiyle, aranan öğe bulunana veya yokluğundan emin olunana kadar devam etmesiyle ilgilidir.
Go dilinde örnek:
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 // öğe bulunamadı
}