Быстрая сортировка произвольных массивов
Завершено
5
04.10.2016, 15:29
24.10.2016, 10:02
Реализовать алгоритм быстрой сортировки, работающий с массивами произвольного типа (развитие задачи сортировки массива целых чисел).
void my_qsort(const void *ptr,
size_t count, size_t size,
int (*cmp)(const void *, const void *));
где:
ptr — указатель на начало массива,count — количество элементов в массиве,size — размер одного элемента,cmp — функция сравнения, которая возвращает число больше нуля, если первый аргумент больше второго, число меньше нуля, если первый меньше второго, и ноль, если аргументы равны.Работу алгоритма протестировать с помощью assert. Особое внимание уделить краевым случаям:
count=0, count=1, count четное, count нечетное, уже сортированный массив, массив из одинаковых чисел.
Дополнительно реализовать тест генерации случайных массивов случайного размера, сортировкой и последующей проверкой.
Для реализации рандомизированной быстрой сортировки можно обратиться к задаче «Перетасовка».