Реализовать утилиту сортировки текстового файла strings_comparer
.
Программа читает из файла строки, сортирует их в определённом порядке и выводит в другой файл.
Сигнатуры сортировок и максимальный размер строки определены в файле sortings.h
.
- количество строк, которое необходимо отсортировать
- имя файла, из которого считывать строки
- имя файла, в который выводить отсортированные строки
- имя алгоритма
- имя компаратора
Утилита должна поддерживать следующие имена алгоритмов:
- bubble — сортировка пузырьком
- insertion — сортировка вставками
- merge — сортировка слиянием
- quick — быстрая сортировка
- radix — поразрядная сортировка
Утилита должна поддерживать следующие имена компараторов:
- asc — по возрастанию (ascending)
- des — по убыванию (descending)
Гарантируется, что второй и третий параметры утилиты различны.
Если утилита смогла выполнить сортировку в соответствии со входными параметрами, то вернуть 0.
Последним символом в файле для вывода должен быть символ новой строки.
При возникновении любой ошибки вернуть -1.
input.txt
Hello World!
Hello!
Hello
strings_comparer 3 input.txt output.txt bubble asc
output.txt
Hello
Hello World!
Hello!
strings_comparer 3 input.txt output.txt bubble des
output.txt
Hello!
Hello World!
Hello
Вызов strings_comparer 100500 input.txt output.txt not_a_sort not_a_comparer
должен вернуть -1.
В этом примере есть 3 ошибки.
Отладить программу с помощью Address Sanitizer и/или Valgrind/Memcheck, решить проблемы работы с указателями и памятью.
- В случае использования глобальных переменных в какой-либо функции их нужно явно инициализировать в ней. Но лучше их просто не использовать. (аналогично задаче 2)
- Ссылка на тестирующую систему