Back to questions
Junior — Middle
74
Можешь назвать алгоритмы для поиска элементов в массиве и кратко описать их работу?
Answer from AI
sobes.tech AI
Основные алгоритмы поиска элементов в массиве:
-
Линейный поиск (Linear Search)
- Проходит по массиву последовательно, сравнивая каждый элемент с искомым.
- Работает на любом массиве, не требует сортировки.
- В худшем случае сложность O(n).
-
Бинарный поиск (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
}