Sobes.tech
Назад к вопросам
Junior — Middle
73

Можешь назвать алгоритмы для поиска элементов в массиве и кратко описать их работу?

Ответ от нейросети

sobes.tech AI

Основные алгоритмы поиска элементов в массиве:

  1. Линейный поиск (Linear Search)

    • Проходит по массиву последовательно, сравнивая каждый элемент с искомым.
    • Работает на любом массиве, не требует сортировки.
    • В худшем случае сложность O(n).
  2. Бинарный поиск (Binary Search)

    • Работает только на отсортированных массивах.
    • Делит массив пополам, сравнивает средний элемент с искомым, затем ищет в левой или правой половине.
    • Сложность O(log n).

Пример бинарного поиска на Swift:

func binarySearch(_ array: [Int], target: Int) -> Int? {
    var left = 0
    var right = array.count - 1
    
    while left <= right {
        let mid = (left + right) / 2
        if array[mid] == target {
            return mid
        } else if array[mid] < target {
            left = mid + 1
        } else {
            right = mid - 1
        }
    }
    return nil
}