Весь исходный код содержится в единственном файле main.c
,
при желании также можно собирать с помощью CMake.
Компилировать следует по стандарту C99, не следует использовать флаги компиляции
-Wfloat-equal
и -Wswitch-default
.
Реализованы два метода сортировки: пирамидальная и Шелла, при этом для второй поддерживается гибкая настройка последовательности (для примера реализованы две: Стасевича и Сэджвика).
Вещественные числа генерируются равномерно в диапазоне [2¹⁶; 2¹⁷). Поскольку они только сравниваются и перемещаются и никаких арифметических операций с ними не производится, то сравнение производится "в лоб", то есть числа с различными бинарными представлениями считаются различными.
Настраиваются также размеры массивов и типы тестов (при этом в конструкциях switch
намеренно пропущен случай default
, чтобы программа не компилировалась при отсутствии
обработчика какого-то типа теста).