ДЗ#3 по дисциплине "Архитектура вычислительных систем". Python, Динамическая типизация.Объектно-ориентированный подход.
13 Вариант. 9 Алгоритм. (Растения -> StraightMerge)
Важно! В качестве доп. функционала реализована правдоподобная генерация названий растений. Составление словаря организованно отдельной подпрограммой, написанной автором.
Наименование | Количество |
---|---|
.py | 12 |
Наименование | Вес |
---|---|
Файлы исходного кода | 16 810 bytes |
- logger/ Здесь хранится логгер
- init.py
- Logger.py Удобный, форматированный вывод на экран
- container/ Директория с модулями контейнеров
- init.py
- Container.py
- utils/ Директория с модулем вспомогательных функций
- init.py
- Flags.py Логика обработки флагов
- functions.py Рассчет количества гласных/подсчет отношения к числу букв в слове
- algorithms/ Директория с модулем сортировок
- MergeSort.py
- init.py
- tests/ Директория с тестовыми данными
- input1.txt
- output1.txt
- input2.txt
- output2.txt
- input3.txt
- output3.txt
- input4.txt
- output4.txt
- input5.txt
- output5.txt
- models/ Директория с модулями моделей
- Plants.py Классы растений, перечисления
- main.py - Мэйн
Стандартный:
./main.py -i ./tests/input1.txt -o ./tests/output1.txt
Важно: пример ниже указандля того случая, когда вы находитесь в папке с исполняемым файлом! Предполагается, что при стандартном запуске входный файл доступен и заполнен данными.
Рандомная генерация (-r):
./main.py -r 34 -i input_file.txt -o output_file.txt
Важно: в input_file.txt запишется результат рандомной генерации 34 элементов.
Количество элементов контейнера | Среденее время выполнения(n=10) | Функциональный подход(n=10) C | ООП подход(n=10) C++ |
---|---|---|---|
10 | 1 | 0 ms | 0ms |
100 | 16 ms | 10 ms | 6 ms |
1000 | 284 ms | 210 ms | 103 ms |
10000 | 3900 ms | 2735 ms | 1702 ms |
Код на Python выполняется медленнее в первую очередь из-за устройства языка. Т.к. Python - это интерпретируемый, а не компилируемый ЯП, то каждый раз приходится заново интерпретировать операторы и т.д. Также, ввиду динамической типизации языка приходится тратить время на проверку типов.