Блок задач

2. Алгоритмы

Сложность 4

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

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

void quick_sort(int* arr, size_t len) {
    ...
}

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

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