Funcția qsort () din C ++ sortează o matrice dată în ordine crescătoare utilizând algoritmul Quicksort.
Funcția qsort () folosește o funcție de comparație pentru a decide care element este mai mic / mai mare decât celălalt.
qsort () prototip
void qsort (void * base, size_t num, size_t size, int (* compare) (const void *, const void *));
Funcția este definită în fișierul antet.
Funcția qsort () sortează matricea dată indicată de bază în ordine crescătoare. Matricea conține num
elemente, fiecare cu octeți de mărime.
Funcția indicată de comparare este utilizată pentru a compara două elemente ale matricei. Această funcție modifică conținutul matricei în ordinea crescătoare.
Cu toate acestea, dacă două sau mai multe elemente sunt egale, ordinea lor este nedefinită.
qsort () Parametri
- bază: Pointer către primul element al tabloului de sortat
- num: Numărul de element din matrice
- size: Dimensiune în octeți a fiecărui element din matrice
- compare: Un indicator către o funcție care compară două elemente. Se întoarce
- un întreg negativ dacă primul argument este mai mic decât al doilea
- un număr întreg pozitiv dacă primul argument este mai mare decât al doilea
- zero dacă ambele argumente sunt egale
Prototipul funcției de comparație arată ca:
int compare (const void * a, const void * b);
qsort () Valoare returnată
Funcția qsort () nu returnează nimic. Matricea sortată este indicată de bază.
Exemplu: Cum funcționează funcția 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