Какие знаешь алгоритмы
Python
Senior
Без компании
Какие знаешь алгоритмы
Ответы
В Python часто используются следующие алгоритмы:
**Сортировки:**
- **Bubble Sort** – простой, но неэффективный (O(n²)).
- **Quick Sort** – быстрый (O(n log n) в среднем, но O(n²) в худшем случае.
- **Merge Sort** – стабильный (O(n log n)), требует доп. памяти.
**Поиск:**
- **Binary Search** – работает за O(log n), но требует отсортированного массива.
**Графовые алгоритмы:**
- **BFS (поиск в ширину)** – O(V + E), поиск кратчайшего пути в невзвешенном графе.
- **DFS (поиск в глубину)** – O(V + E), обход графа или поиск компонент связности.
**Пример Binary Search:**
```
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 в Python)**, **жадные алгоритмы**, **динамическое программирование** (например, задача о рюкзаке).