—правочник по 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() дл€ массива, который отсортирован в пор€дке убывани€, вам также придетс€ использовать в функции сравнени€ услови€, измененные на противоположные.






–Э–µ—В –Ї–Њ–Љ–Љ–µ–љ—В–∞—А–Є–µ–≤.



–Ю—Б—В–∞–≤–Є—В—М –Ї–Њ–Љ–Љ–µ–љ—В–∞—А–Є–є:
–Т–∞—И–µ –Ш–Љ—П:
Email:
–Р–љ—В–Є–±–Њ—В: *  
–Т–∞—И –Ї–Њ–Љ–Љ–µ–љ—В–∞—А–Є–є: