Пространства имён
Варианты
Действия

qsort

Материал из cppreference.com
< c‎ | algorithm
Определено в заголовочном файле <stdlib.h>
void qsort( const void *ptr, size_t count, size_t size,
            int (*comp)(const void *, const void *) );

Сортирует массив, на который указывает ptr, по возрастанию. Массив содержит count элементов размера size. Функция, на которую указывает comp, используется для сравнения объектов.

Содержание

[править] Параметры

ptr указатель на сортируемый массив
count число элементов в массиве
size размер каждого элемента массива в байтах
comp функция сравнения, которая возвращает отрицательное целое значение, если первый аргумент меньше чем второй, положительное целое значение, если первый аргумент больше чем второй и ноль если они равны. Сигнатура функции сравнения должна соответствовать следующей:
int comp (const void *, const void *) );

Функция не должна модифицировать объекты передаваемые ей.


[править] Возвращаемое значение

(нет)

[править] Пример

Следующая программа сортирует массив целых чисел, используя qsort()

#include <stdio.h>
#include <stdlib.h>
 
int compare_ints(const void* a, const void* b)
{
    const int *arg1 = a;
    const int *arg2 = b;
 
    return *arg1 - *arg2;
}
 
int main(void)
{
    int i;
    int ints[] = { -2, 99, 0, -743, 2, 3, 4 };
    int size = sizeof ints / sizeof *ints;
 
    qsort(ints, size, sizeof(int), compare_ints);
 
    for(i = 0; i < size; i++)
        printf("%d ", ints[i]);
 
    printf("\n");
 
    return EXIT_SUCCESS;
}

Вывод:

-743 -2 0 2 3 4 99

[править] См. также

ищет в массиве элемент неопределённого типа
(функция) [править]