Junior — Middle
Tartiblangan massivda elementni tezda qidirish uchun qanday usullar ishlatilishi mumkin va vaqtni qanday minimallashtirish mumkin?
sobes.tech AI
AIdan javob
Tartiblangan massivda elementni tez topish uchun odatda binar qidirish algoritmi ishlatiladi. Bu vaqtni minimallashtiradi, chunki u O(log n) vaqt ichida ishlaydi, bu yerda n massivning o'lchami.
Binar qidirish fikri:
- Qidirilayotgan elementni massivning o'rtasidagi element bilan solishtiring.
- Agar ular teng bo'lsa, element topildi.
- Agar qidirilayotgan element kichik bo'lsa, chap yarmada qidirishni davom eting.
- Agar katta bo'lsa, o'ng yarmada.
iOS (Swift) da binarySearch metodidan foydalanishingiz yoki uni o'zingiz amalga oshirishingiz mumkin.
Swiftda misol:
func binarySearch<T: Comparable>(_ array: [T], target: T) -> Int? {
var low = 0
var high = array.count - 1
while low <= high {
let mid = (low + high) / 2
if array[mid] == target {
return mid
} else if array[mid] < target {
low = mid + 1
} else {
high = mid - 1
}
}
return nil
}
let sortedArray = [1, 3, 5, 7, 9]
if let index = binarySearch(sortedArray, target: 5) {
print("Element topildi pozitsiyada \(index)")
} else {
print("Element topilmadi")
}