Какая средняя алгоритмическая сложность поиска значения в сортированном массиве

«Какая средняя алгоритмическая сложность поиска значения в сортированном массиве» — вопрос из категории Алгоритмы и структуры данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Бинарный поиск в отсортированном массиве имеет сложность O(log n), где n — количество элементов. Это связано с тем, что на каждом шаге алгоритм делит массив пополам, отбрасывая половину элементов.

Пример на Kotlin:

fun binarySearch(arr: IntArray, target: Int): Int {
    var left = 0
    var right = arr.size - 1
    while (left <= right) {
        val mid = left + (right - left) / 2
        when {
            arr[mid] == target -> return mid
            arr[mid] < target -> left = mid + 1
            else -> right = mid - 1
        }
    }
    return -1
}