C ++ qsort () - Стандартная библиотека C ++

Функция 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

Интересные статьи...