Qsort
qsort
Функция Сортирует данные, применяя быстрый алгоритм сортировки.
Синтаксис #include
void qsort(void *base, size_t nelem, size_t width, int(*fcmp)(const void *, const void *));
Файл, содержащий stdlib.h прототип
Описание Функция qsort применяет алгоритм быстрой сорти- ровки "средний из трех". Функция qsort сортирует содержимое таблицы постоянно вызывая функцию сравнения, определяемой пользователем и адресуе- мой с помощью указателя fcmp.
- base адресует базу (нулевой элемент) сортируе- мой таблицы.
- nelem - число элементов таблицы;
- width - размер каждого элемента таблицы в бай- тах.
Функция *fcmp - функция сравнения - получает два аргумента elem1 и elem2, которые представляют со- бой два указателя на 2 элемента таблицы. Функция сравнения *fcmp сравнивает между собой два адре- суемых элемента таблицы (*elem1 и *elem2) и возв- ращает в зависимости от результата сравнения це- лое число.
Если элементы: *fcmp возвращает: -------------------------------------------------- *elem1elem2 целое >0 --------------------------------------------------
При сравнении символ "меньше, чем" () означает, что в конце сор- тировки левый элемент должен оказаться после пра- вого.
Возвращаемое Нет. значение
Переносимость Функция поддерживается на системах UNIX и стандар- том ANSI C.
Смотрите также
Пример:
#include
#include
#include
int sort_function(const void *a,const void *b);
char list[5][4] = {"cat", "car", "cab", "cap", "can"};
int main(void) { int x; qsort((void *)&list, 5, sizeof(list[0]), sort_function); for(x=0; x