C ++ qsort () - C ++ Standardbibliotek

Funktionen qsort () i C ++ sorterer et givet array i stigende rækkefølge ved hjælp af Quicksort-algoritme.

Funktionen qsort () bruger en sammenligningsfunktion til at afgøre, hvilket element der er mindre / større end det andet.

qsort () prototype

 ugyldig qsort (ugyldig * base, størrelse_t num, størrelse_t størrelse, int (* sammenligne) (const ugyldig *, const ugyldig *));

Funktionen er defineret i header-fil.

Funktionen qsort () sorterer det givne array peget på base i stigende rækkefølge. Arrayet indeholder numelementer, hver af størrelsesbyte.

Funktionen peget på sammenlign bruges til at sammenligne to elementer i arrayet. Denne funktion ændrer selve arrayets indhold i stigende rækkefølge.

Men hvis to eller flere elementer er ens, er deres rækkefølge udefineret.

qsort () Parametre

  • base: Markør til det første element i arrayet, der skal sorteres
  • num: Antal element i arrayet
  • størrelse: Størrelse i byte for hvert element i arrayet
  • sammenligne: En markør til en funktion, der sammenligner to elementer. Det vender tilbage
    • et negativt heltal, hvis det første argument er mindre end det andet
    • et positivt heltal, hvis det første argument er større end det andet
    • nul, hvis begge argumenter er ens

Prototypen for sammenligningsfunktionen ser ud som:

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

qsort () Returværdi

Funktionen qsort () returnerer ikke noget. Det sorterede array peges på med base.

Eksempel: Hvordan fungerer qsort () -funktionen?

 #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 artikler...