# qsort

Функция `FSF.qsort` осуществляет сортировку данных с использованием алгоритма QuickSort.

    void WINAPI qsort(
      void *Base,
      size_t NElem,
      size_t Width,
      int (WINAPI *fcmp)(const void *, const void *, void *),
      void *UserParam
    );

### Параметры

Base
Указатель на начало данных для сортировки.
NElem
Количество сортируемых данных.
Width
Размер одного элемента сортируемых данных.
fcmp
Функция сравнения двух элементов. В процессе сортировки вызывается каждый раз, когда необходимо сравнить пару элементов данных. Функция сравнения `fcmp` должна иметь декларацию `WINAPI`.
`fcmp` получает три аргумента - `elem1`, `elem2` (которые являются указателями на данные) и `userparam` (то, что было передано в функцию в качестве параметра `UserParam`), и возвращает результат:

*elem1 < *elem2 | - fcmp возвращает целое меньше 0
*elem1 == *elem2 | - fcmp возвращает 0
*elem1 > *elem2 | - fcmp возвращает целое больше 0

UserParam
Указатель на пользовательские данные, которые функция `qsort` будет передавать в функцию сравнения `fcmp` в качестве третьего параметра.

### Возвращаемое значение

Нет.

### Примечание

Функция реализует нестабильную сортировку. Иными словами, порядок элементов, равных с точки зрения функции сравнения, не определён и может меняться при повторных сортировках уже отсортированного массива.
Смотрите также:
FSF.bsearch