CodeNet / Языки программирования / C / C++ / Linux/Unix / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
qsort
QSORT #include <search.h> требуется только для объявления функции void gsort(base,num, width, compare); char *base; unsigned num, width; int (*compare)(); Описание. Функция qsort выполняет алгоритм быстрой сортировки, чтобы отсортировать массив из num элементов, каждый элемент размером width байт. Аргумент base является указателем на базу массива, который нужно отсортировать. Функция qsort перезаписывает этот массив с отсортированными элементами. Аргумент compare является указателем на процедуру, постав- ляемую пользователем, которая сравнивает два элемента массива и возвращает значение, определяющее их отношение. Функция qsort может вызывать процедуру compare один или несколько раз в процессе сортировки, передавая при каждом вызове указатели на два элемента массива. Процедура должна сравнивать элементы, а затем возвращать одно из следующих значений: Значение Его смысл меньше 0 element 1 меньше element 2 0 element 1 равен element 2 больше 0 element 1 больше element 2 Возвращаемое значение. Возвращаемого значения в случае ошибки нет. См.также bsearch, lsearch. Пример: #include <search.h> #include <string.h> #include <stdio.h> int compare (); /* должна быть объявлена как функция */ main (argc, argv) int argc; char **argv; { . . . /* следующий оператор сортирует аргументы командной строки в лексикографическом порядке: */ qsort((char*)argv,argc,sizeof(char*),compare); for (i=0; i<argc; ++i) printf("%s\n", argv[i]); . . . } int compare (arg1, arg2) char **arg1, **arg2; { return(strcmp(*arg1, *arg2)); }