C-Bibliotheksfunktionen -qsort()

C-Standardbibliothek - <stdlib.h>

Beschreibung

qsortist eine in der C-Standardbibliothek bereitgestellte Funktion, die zum Quicksortieren von Arrays verwendet wird. Sie ist in<stdlib.h>Definiert in der Header-Datei.qsortSie verwendet den Quicksort-Algorithmus, einen effizienten Sortieralgorithmus mit einer durchschnittlichen Zeitkomplexität von O(n log n).

C-Bibliotheksfunktionenvoid qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)) Sortieren Sie das Array.

Deklaration

Das Folgende ist die Deklaration der Funktion qsort().

void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *));

Parameter

  • base: Zeiger auf das erste Element des zu sortierenden Arrays.
  • nitems: Die Anzahl der Elemente im Array.
  • size: Größe jedes Elements im Array (in Bytes).
  • compar: Ein Zeiger auf eine Vergleichsfunktion, die zum Vergleichen zweier Elemente verwendet wird. Die Vergleichsfunktion sollte eine Ganzzahl zurückgeben, die das Ergebnis des Vergleichs angibt:
    • Kleiner als null: gibt an, dass das erste Element kleiner als das zweite Element ist.
    • Gleich null: gibt an, dass die beiden Elemente gleich sind.
    • Größer als null: gibt an, dass das erste Element größer als das zweite Element ist.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der Funktion qsort().

Beispiel

#include <stdio.h>
#include <stdlib.h>

// definiere ein Array mit fünf ganzen Zahlen
int values[] = { 88, 56, 100, 2, 25 };

// Vergleichsfunktion zum Vergleichen zweier ganzer Zahlen
int cmpfunc (const void * a, const void * b)
{
   return ( *(int*)a - *(int*)b );
}

int main()
{
   int n;

   // den Inhalt des Arrays vor dem Sortieren ausgeben
   printf(Liste vor dem Sortieren:\n");
   for( n = 0 ; n < 5; n++ ) {
      printf("%d ", Werte[n]);
   }

   // Verwenden Sie die qsort-Funktion, um das Array zu sortieren
   qsort(values, 5, sizeof(int), cmpfunc);

   // Ausgabe des Array-Inhalts nach dem Sortieren
   printf("\nListe nach dem Sortieren:\n");
   for( n = 0 ; n < 5; n++ ) {
      printf("%d ", Werte[n]);
   }
 
   return 0;
}

Lassen Sie uns das obige Programm kompilieren und ausführen, was das folgende Ergebnis erzeugt:

排序之前的列表:
88 56 100 2 25 
排序之后的列表:
2 25 56 88 100

C-Standardbibliothek - <stdlib.h>

Weitere Erweiterungen