Функция qsort () в C ++ сортирует заданный массив в порядке возрастания с использованием алгоритма быстрой сортировки.
Функция qsort () использует функцию сравнения, чтобы решить, какой элемент меньше / больше другого.
qsort () прототип
void qsort (void * base, size_t num, size_t size, int (* compare) (const void *, const void *));
Функция определена в заголовочном файле.
Функция qsort () сортирует заданный массив, на который указывает base, в порядке возрастания. Массив содержит num
элементы, каждый размером в байты.
Функция, на которую указывает compare, используется для сравнения двух элементов массива. Эта функция изменяет содержимое самого массива в порядке возрастания.
Однако, если два или более элемента равны, их порядок не определен.
qsort () Параметры
- base: указатель на первый элемент массива для сортировки
- num: номер элемента в массиве
- size: Размер в байтах каждого элемента в массиве
- compare: указатель на функцию, сравнивающую два элемента. Он возвращается
- отрицательное целое число, если первый аргумент меньше второго
- положительное целое число, если первый аргумент больше второго
- ноль, если оба аргумента равны
Прототип функции сравнения выглядит так:
int compare (const void * a, const void * b);
qsort () Возвращаемое значение
Функция qsort () ничего не возвращает. На отсортированный массив указывает база.
Пример: как работает функция qsort ()?
#include #include using namespace std; int compare(const void* a, const void* b) ( const int* x = (int*) a; const int* y = (int*) b; if (*x> *y) return 1; else if (*x < *y) return -1; return 0; ) int main() ( const int num = 10; int arr(num) = (9,4,19,2,7,9,5,15,23,3); cout << "Before sorting" << endl; for (int i=0; i
When you run the program, the output will be:
Before sorting 9 4 19 2 7 9 5 15 23 3 After sorting 2 3 4 5 7 9 9 15 19 23