Задача «Пирамидальная сортировка произвольных массивов»

Развитие задачи «Пирамидальная сортировка (int [])» до сортировки произвольных массивов.

void heapsort(void *ptr, size_t count, size_t size,
              int (*cmp)(const void *, const void *));

где:

  • ptr — указатель на начало массива,
  • count — количество элементов в массиве,
  • size — размер одного элемента,
  • cmp — функция сравнения, которая возвращает число больше нуля, если первый аргумент больше второго, число меньше нуля, если первый меньше второго, и ноль, если аргументы равны.