Бинарный поиск
fun binarySearch(nums: IntArray, target: Int): Int {
var left = 0
var right = nums.size - 1
while (left <= right) {
val mid = left + (right - left) / 2
when {
nums[mid] == target -> return mid
nums[mid] < target -> left = mid + 1
else -> right = mid - 1
}
}
return -1
}
// Пример использования:
val sortedNums = intArrayOf(1, 2, 4, 7, 9)
val target = 7
println(binarySearch(sortedNums, target)) // Вывод: 3
Дан отсортированный массив целых чисел и целевое значение. Напишите функцию, которая использует бинарный поиск для нахождения индекса целевого значения в массиве. Если целевое значение не найдено, верните -1
.
fun search(nums: IntArray, target: Int): Int {
var left = 0
var right = nums.size - 1
while (left <= right) {
val mid = left + (right - left) / 2
when {
nums[mid] == target -> return mid
nums[mid] < target -> left = mid + 1
else -> right = mid - 1
}
}
return -1
}