C ++ qsort () - C ++ standaardbibliotheek

De functie qsort () in C ++ sorteert een gegeven array in oplopende volgorde met behulp van het Quicksort-algoritme.

De functie qsort () gebruikt een vergelijkingsfunctie om te beslissen welk element kleiner / groter is dan het andere.

qsort () prototype

 void qsort (void * base, size_t num, size_t size, int (* vergelijk) (const void *, const void *));

De functie is gedefinieerd in het header-bestand.

De functie qsort () sorteert de gegeven array met de basis in oplopende volgorde. De array bevat numelementen, elk met een grootte-bytes.

De functie die wordt aangeduid met vergelijken, wordt gebruikt om twee elementen van de array te vergelijken. Deze functie wijzigt de inhoud van de array zelf in oplopende volgorde.

Als twee of meer elementen echter gelijk zijn, is hun volgorde niet gedefinieerd.

qsort () Parameters

  • base: Pointer naar het eerste element van de array om te sorteren
  • num: nummer van het element in de array
  • size: grootte in bytes van elk element in de array
  • vergelijk: een aanwijzer naar een functie die twee elementen vergelijkt. Het keert terug
    • een negatief geheel getal als het eerste argument kleiner is dan het tweede
    • een positief geheel getal als het eerste argument groter is dan het tweede
    • nul als beide argumenten gelijk zijn

Het prototype van de vergelijkingsfunctie ziet er als volgt uit:

 int vergelijken (const void * a, const void * b);

qsort () Retourwaarde

De functie qsort () retourneert niets. De gesorteerde array wordt aangeduid met de basis.

Voorbeeld: hoe werkt de functie 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

Interessante artikelen...