Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

Qsort

CuBook05

Функция

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

#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

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