Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы Инфа 1 курс 2 сем.docx
Скачиваний:
1
Добавлен:
06.02.2024
Размер:
2 Mб
Скачать
  1. Основы библиотеки pytest.

Pytest - модуль, позволяющий быстро писать небольшие тесты, которые впоследствии легко масштабируются на более крупные проекты.

Запуск командой pytest.

Название тестирующей функции должно начинаться с test_*.

Название скрипта, где описаны тестовые функции, должно выглядеть как test_*.py или *_test.py.

В тестирующих функциях используется инструкция assert. Эта булевая функция проверяет, является ли выражение после нее истинным. Если это не так, скрипт возвращает ошибку AssertionError, с которой можно работать. Например, assert 1 == 0 вернет ошибку, а assert 1 == 1 — нет.

  1. Алгоритмы поиска.

  1. Прямой поиск (o(n))

Самый банальный и простой поиск прямым перебором.

  1. Бинарный поиск (o(log n))

Важное уточнение: Поиск работает только на отсортированной последовательности, т.к. основан на сравнении и предположении, что если искомый элемент меньше элемента из последовательности, то он меньше всех элементов после него

Суть: найти элемент, каждый раз сокращая область поиска вдвое. Задать центральный индекс и определить, в какой части последовательности находится искомый элемент. Следующую итерацию поиска проводить по этой части.

  1. Алгоритмы сортировки.

  1. Пузырьковая

- Временная сложность O(n^2)

- Устойчивая

- Не использует доп. память

Самая простая, интуитивная, но в то же время самая долгая сортировка

Суть: проходить по последовательности, сравнивая элементы попарно

Если определить транзитивный критерий сравнения, то такая сортировка может использоваться не только для чисел.

  1. Сортировка слиянием

- Временная сложность O(n^2) (технически, в реальности она слегка быстрее пузырьковой)

- Устойчивая

- Не использует доп. память

Модификация пузырьковой сортировки. В алгоритм добавляются 2 основных улучшения:

1. Перебор последовательности постоянно меняет направление, т.е. за одну итерацию последовательность просматривается сначала в прямом, потом в обратном порядке. Таким образом, после первой итерации на место встанут наименьший и наибольший элементы, в отличие от только наибольшего в пузырьковой

2. Диапазон перебора с каждой итерацией уменьшается на 2 элемента, т.к. наибольший и наименьший из рассмотренных гарантированно занимают свои места после итерации

Соседние файлы в предмете Информатика