Задача «Быстрая сортировка (int [])»

Реализовать алгоритм быстрой сортировки, работающий с массивами int.

void int_qsort(int *arr, size_t count);

Работу алгоритма протестировать с помощью assert. Особое внимание уделить краевым случаям: count=0, count=1, count четное, count нечетное, уже сортированный массив, массив из одинаковых чисел. Дополнительно реализовать тест генерации случайных массивов случайного размера, сортировкой и последующей проверкой.

Исследовать разные способы выбора опорного элемента. Для реализации рандомизированной быстрой сортировки можно обратиться к задаче «Перетасовка».

Замечание: имеется продвинутая задача сортировки массивов произвольного типа.