Какие знаешь алгоритмы поиска
Python
Middle
Без компании
Какие знаешь алгоритмы поиска
Ответы
В Python распространены несколько алгоритмов поиска:
**Линейный поиск**
Простейший алгоритм, перебирает элементы последовательно.
```
def linear_search(arr, target):
for i, item in enumerate(arr):
if item == target:
return i
return -1
```
**Бинарный поиск**
Работает на отсортированных массивах, делит пополам на каждом шаге.
```
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
```
**Поиск в хеш-таблицах (dict)**
O(1) в среднем случае благодаря хешированию.
Также существуют специализированные алгоритмы:
- Интерполяционный поиск (для равномерно распределенных данных)
- Поиск Фибоначчи (вариант бинарного)
- Троичный поиск (для нахождения экстремумов)
Выбор зависит от структуры данных и требований к скорости/памяти.