В проекте собираются два компонента, предоставляющий методы сортировки с сигнатурой стандартной библиотеки qsort в виде подключаемых библиотек и Unit Test исполняемый файл, демонстрирующий работу методов и замеряющий время их работы.
Производится с помощью cmake и компилятора MSVC в IDE clion.
Библиотечные компоненты собираются как в динамические библиотеки .dll
, так и .lib
1F5DF16EE1BF43B999A434ED38FE8F3A - Компонент с рекурсивной версией сортировки слиянием.
1F5DF16EE1BF43B999A434ED38FE8F3B - Компонент с итеративной версией сортировки слиянием.
Графики нарисованы в логарифмических осях, на них видно, сортировки уступают встроенной функции qsort по времени, однако имеют ту же
алгоритмическую сложность - O(n * log n)
Компонент CEcoLab1 так же имплементирует 2 дополнительных интерфейса:
IEcoCalculatorX
IEcoCalculatorY
IEcoCalculatorY
реализован при помощи механизма включения компонентов из InsideACOM
CEcoCalculatorD
или CEcoCalculatorE
, для работы в той же папке, что и запускаемый исполняемый файл,
должны находиться соответствующие .dll
файлы.
IEcoCalculatorX
реализован при помощи агрегирования компонента CEcoCalculatorB
или включения
компонента CEcoCalculatorA
.
В компонент CEcoLab1 добавлено поддержка точек подключения и интерфейс обратных вызовов IEcoLab1Events
,
в котором описаны события, происходящие в течение сортировки. Клиент может создать приемник, реализовать в нем данный интерфейс
и реагировать на получаемые события.
Цвета элементов при слиянии:
- голубой - элементы из левой половины массива
- красный - элементы правой половины массива