Russian Belarusian English German Japanese Ukrainian

Функция


Сортирует данные, применяя быстрый алгоритм сортировки.

Синтаксис


#include<stdlib.h>
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) и возвращает в зависимости от результата сравнения целое число.

При сравнении символ «меньше, чем» (<) означает, что левый элемент в конце сортировки должен оказаться перед правым аргументом. Аналогично, символ «больше, чем» (>) означает, что в конце сортировки левый элемент должен оказаться после правого.

Возвращаемое значение


Нет.

Переносимость


Функция поддерживается на системах UNIX и стандартом ANSI C.

Пример


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

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<5, x++)
printf("%s\n",list[x]);
}

int sort_function(const void *a,const void *b)
{
return(strcmp(a,b));
}

Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий


Поиск по сайту