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

Функцията qsort () в C ++ сортира даден масив във възходящ ред, използвайки алгоритъма Quicksort.

Функцията qsort () използва функция за сравнение, за да реши кой елемент е по-малък / по-голям от другия.

прототип на qsort ()

 void qsort (void * base, size_t num, size_t size, int (* сравнение) (const void *, const void *));

Функцията е дефинирана в заглавния файл.

Функцията qsort () сортира дадения масив, посочен от базата, във възходящ ред. Масивът съдържа numелементи, всеки с размер байтове.

Функцията, посочена от сравнение, се използва за сравняване на два елемента от масива. Тази функция променя съдържанието на самия масив във възходящ ред.

Ако обаче два или повече елемента са равни, техният ред не е дефиниран.

qsort () Параметри

  • основа: указател към първия елемент на масива за сортиране
  • num: Номер на елемента в масива
  • size: Размер в байтове на всеки елемент в масива
  • сравни: указател към функция, която сравнява два елемента. Връща се
    • отрицателно цяло число, ако първият аргумент е по-малък от втория
    • положително цяло число, ако първият аргумент е по-голям от втория
    • нула, ако и двата аргумента са равни

Прототипът на функцията за сравнение изглежда така:

 int сравнение (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

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