Funkcija qsort () u C ++ sortira dani niz u rastućem redoslijedu pomoću Quicksort algoritma.
Funkcija qsort () koristi funkciju usporedbe kako bi odlučila koji je element manji / veći od drugog.
prototip qsort ()
void qsort (void * baza, size_t num, size_t size, int (* usporedi) (const void *, const void *));
Funkcija je definirana u zaglavnoj datoteci.
Funkcija qsort () sortira dani niz na koji upućuje baza u rastućem redoslijedu. Niz sadrži num
elemente, svaki veličine bajta.
Funkcija na koju ukazuje usporedba koristi se za usporedbu dva elementa niza. Ova funkcija mijenja sadržaj samog niza u rastućem redoslijedu.
Međutim, ako su dva ili više elemenata jednaka, njihov redoslijed nije definiran.
qsort () parametri
- baza: Pokazivač na prvi element niza za sortiranje
- num: Broj elementa u polju
- veličina: veličina u bajtovima svakog elementa u polju
- usporedi: pokazivač na funkciju koja uspoređuje dva elementa. Vraća se
- negativan cijeli broj ako je prvi argument manji od drugog
- pozitivan cijeli broj ako je prvi argument veći od drugog
- nula ako su oba argumenta jednaka
Prototip funkcije usporedbe izgleda ovako:
int usporedi (const void * a, const void * b);
qsort () Povratna vrijednost
Funkcija qsort () ne vraća ništa. Na razvrstani niz ukazuje baza.
Primjer: Kako funkcionira funkcija 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