CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по библиотечным функциям языка Си
qsort - быстрая сортировка таблицы
Описание
Реализует быструю сортировку таблицы данных.
base - указатель на таблицу.
nel - количество элементов таблицы.
size - размер в байтах элемента таблицы.
compar - имя функции, реализующей алгоритм сравне-
ния двух аргументов, заданных указателями.
Функция поставляется программистом и долж-
на возвращать целое, которое меньше, рав-
но или больше 0 в соответствии с резуль-
татом сравнения двух аргументов.
Использование
#include <stdio.h>
void qsort(void *base, unsigned nel, unsigned size,
int (*compar)(void *, void *)); /* ANSI */
Возвращаемое значение
Нет возвращаемого значения.
Пример
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXL 10
unsigned char *line[MAXL];
comp(unsigned char **a, unsigned char **b);
{
return strcmp(*a, *b);
}
main()
{
int j,k;
unsigned char buffer[82];
printf("Введите 10 строк данных\n");
for (j=0; j<MAXL; ++j)
{
printf("Строка: %d\n", j+1);
if (!fgets(buffer,80,stdin))
break;
line[j]=malloc(strlen(buffer)+1);
strcpy(line[j],buffer);
}
printf("\n\n Сортируем 10 строк из stdin:\n");
qsort(line, j, sizeof(unsigned char *), comp);
for (k=0; k<j; ++k)
printf("Строка: %d%s\n", k+1,line[k]);
}
