Справочник по C/C++
qsort()

#include <stdlib.h>
void qsort(void *buf, size_t num, size_t size,
		int (*compare) (const void *, const void *));

Описание

Сортирует массив с помощью алгоритма быстрой сортировки Quicksort

Функция qsort() сортирует массив, адресуемый параметром buf, с помощью алгоритма быстрой сортировки Quicksort (его разработал Н.Э.P. Xoap(C.A.R. Hoarc)). Quicksort считается лучшим алгоритмом сортировки общего назначения. Количество элементов в массиве задается параметром num, а размер(в байтах) каждого элемента - параметром size.

Для сравнения двух элементов массива используется функция, адресуемая параметром compare. Форма записи функции compare должна иметь следующий вид.

int func_name(const void *argl, const void *arg2);

Она должна возвращать значения, описанные ниже.

Сравнение Возвращаемое значение
arg1 меньше arg2  Меньше нуля
arg1 равен arg2 Нуль
argl больше arg2 Больше нуля

Массив должен быть отсортирован в порядке возрастания, чтобы по самому младшему адресу содержался наименьший элемент.


Совет программисту

Если вы хотите с помощью функции qsort() отсортировать массив в порядке убывания(т.е. от большего к меньшему), просто измените на противоположные условия, используемые функцией сравнения, т.е. заставьте функцию сравнения возвращать следующие значения.

Сравнение Возвращаемое значение
argl меньше arg2  Больше нуля
argl равен arg2 Нуль
argl больше arg2 Меньше нуля

Кроме того, чтобы применить функцию bsearch() для массива, который отсортирован в порядке убывания, вам также придется использовать в функции сравнения условия, измененные на противоположные.