Автор: Чиркин Александр (группа КБ-101)(chirkin2001@list.ru)
Данное приложение позволяет использовать пять алгоритмов поиска под строки в строке:
- "Грубая сила" (Brute force)
- Хэш-функции (берутся коды символов в ASCII и складываются тремя разными способами: линейно, квадратично и методом Рабина-Карпа)
- Конечный детерминированный автомат
- Алгоритм Морриса-Пратта
- Алгоритм Бойера-Мура
После запуска алгоритмов можно проанализировать их расходование времени и памяти.
- Python версии не ниже 3.7
- модули из requirements.txt
- Точка входа: 'benchmark.py'
- Папка с алгоритмами: 'algorithms'; имя каждого файла в этой папке соответствует алгоритмам, которые в нем содержатся
- Папка 'samples' содержит примеры текстов, на которых можно проверить алгоритм - "Война и мир" Л.Н. Толстого
- Папка 'tests' содержит тесты на алгоритмы
pip3 install -r prequirements.txt python3 benchmark.py [-h] {automat,boyermoore,bruteforce,morrispratt,quadratichash,rabinkarp,simplehash,all} ...
- 'all' - запускает все алгоритмы
- Для запуска соответствующего алгоритма введите его название
При выборе алгоритма потребуется ввести шаблоны, которые будут искаться алгоритмами, а также количество первых нахождений. Затем нужно либо выбрать файл, в котором будет происходить поиск (--input_file + --encoding - кодировка текста), либо самому написать текст через stdin (с использованием ключа --stdin) и знаком '<<'
Наконец, можно выбрать способ вывода отчета: через stdout или в файл; для последнего нужно ввести ключ --report_file и ввести название файла, в который будет выводиться отчет
При введении ключа '-h' или '--help' выводится справка по соответствующему алгоритму