Какими способами можно найти значение в отсортированном списке
Python
Senior
Без компании
Какими способами можно найти значение в отсортированном списке
Ответы
В Python есть несколько эффективных способов поиска в отсортированном списке:
- **Бинарный поиск** - оптимальный способ для отсортированных данных (O(log n)):
```
import bisect
index = bisect.bisect_left(sorted_list, value)
if index != len(sorted_list) and sorted_list[index] == value:
print(f"Found at index {index}")
```
- **Встроенный `in` оператор** - простой, но линейный поиск (O(n)):
```
if value in sorted_list:
print("Value exists")
```
- **Индекс через `index()`** - также линейный поиск:
```
try:
index = sorted_list.index(value)
except ValueError:
print("Not found")
```
Для больших списков всегда предпочтительнее бинарный поиск через `bisect`. Для небольших данных (до ~100 элементов) разница незначительна.