C ++ qsort () - C ++ Standardbibliotek

Funktionen qsort () i C ++ sorterar en given matris i stigande ordning med Quicksort-algoritmen.

Funktionen qsort () använder en jämförelsefunktion för att bestämma vilket element som är mindre / större än det andra.

qsort () prototyp

 void qsort (void * base, size_t num, size_t size, int (* jämför) (const void *, const void *));

Funktionen definieras i rubrikfilen.

Funktionen qsort () sorterar den givna matrisen pekad av bas i stigande ordning. Matrisen innehåller numelement, var och en av storleksbyten.

Funktionen som pekas av jämför används för att jämföra två element i matrisen. Denna funktion ändrar själva matrisen i stigande ordning.

Men om två eller flera element är lika är deras ordning odefinierad.

qsort () Parametrar

  • bas: pekare till det första elementet i matrisen som ska sorteras
  • num: Antal element i matrisen
  • storlek: Storlek i byte för varje element i matrisen
  • jämför: En pekare till en funktion som jämför två element. Den återvänder
    • ett negativt heltal om det första argumentet är mindre än det andra
    • ett positivt heltal om det första argumentet är större än det andra
    • noll om båda argumenten är lika

Prototypen för jämförelsefunktionen ser ut som:

 int jämför (const void * a, const void * b);

qsort () Returvärde

Funktionen qsort () returnerar ingenting. Den sorterade matrisen pekas på med bas.

Exempel: Hur fungerar 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

Intressanta artiklar...