C ++ qsort () - C ++ standardna biblioteka

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 numelemente, 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

Zanimljivi članci...