C ++ qsort () - C ++ Standardbibliothek

Die Funktion qsort () in C ++ sortiert ein bestimmtes Array in aufsteigender Reihenfolge mithilfe des Quicksort-Algorithmus.

Die Funktion qsort () verwendet eine Vergleichsfunktion, um zu entscheiden, welches Element kleiner / größer als das andere ist.

qsort () Prototyp

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

Die Funktion ist in der Header-Datei definiert.

Die Funktion qsort () sortiert das angegebene Array, auf das die Basis zeigt, in aufsteigender Reihenfolge. Das Array enthält numElemente mit jeweils einer Größe von Bytes.

Die Funktion durch Vergleichen wird verwendet, um zwei Elemente des Arrays zu vergleichen. Diese Funktion ändert den Inhalt des Arrays selbst in aufsteigender Reihenfolge.

Wenn jedoch zwei oder mehr Elemente gleich sind, ist ihre Reihenfolge undefiniert.

qsort () Parameter

  • base: Zeiger auf das erste zu sortierende Element des Arrays
  • num: Anzahl der Elemente im Array
  • Größe: Größe in Bytes jedes Elements im Array
  • compare: Ein Zeiger auf eine Funktion, die zwei Elemente vergleicht. Es kehrt zurück
    • eine negative Ganzzahl, wenn das erste Argument kleiner als das zweite ist
    • eine positive ganze Zahl, wenn das erste Argument größer als das zweite ist
    • Null, wenn beide Argumente gleich sind

Der Prototyp der Vergleichsfunktion sieht folgendermaßen aus:

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

qsort () Rückgabewert

Die Funktion qsort () gibt nichts zurück. Auf das sortierte Array zeigt die Basis.

Beispiel: Wie funktioniert die Funktion 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 Beiträge...