So sortieren Sie Arrays mit QSORT in C

So sortieren Sie Arrays mit QSORT in C
Sortierung ist ein grundlegender Betrieb in der Computerprogrammierung und beinhaltet die Anordnung einer Datenerfassung in einer bestimmten Reihenfolge. Eine Möglichkeit, eine Reihe von Elementen in C zu sortieren, besteht darin, die zu verwenden QSORT () Funktion, die Teil der Standardbibliothek ist. Diese Funktion erfordert ein Array, seine Größe und eine Vergleichsfunktion als Argumente und sortiert das Array standardmäßig in aufsteigender Reihenfolge.

Diese Richtlinie zeigt die Sortierung von Arrays mit der QSORT () Funktion in C und hilft Ihnen auch, es durch C -Beispielcodes zu verstehen.

qsort () in c

C Standardbibliothek erleichtert uns mit QSORT () Funktion, die einfach zum Sortieren von Arrays verwendet wird. Es ist eine extrem optimierte und schnelle Funktion, die mit jedem Datentyp -Array betrieben werden kann.

Header-Datei mit QSORT () in c

Der QSORT () Methode ist in der definiert stdlib.H Header -Datei, die vor der Implementierung definiert werden muss QSORT () in einem C -Programm.

#enthalten

Deklaration von QSORT ()

Die Erklärung von QSORT () Funktion ist wie folgt:

void qsort (void *base, number_of_elements, size_of_element, vergleichung_function)

Parameter der Funktion qsort ()

Die Parameter der QSORT () Funktion sind:

Base: Zeiger auf das erste Element des Arrays, das sortiert werden soll.

number_of_elements: Anzahl der Elemente im Array, die sortiert werden sollen.

size_of_element: Größe in Bytes jedes Elements im Array.

Vergleich_Funktion: Zeiger auf eine Vergleichsfunktion, die die Reihenfolge der Elemente definiert.

Was ist die Vergleichsfunktion in QSORT ()

Die Vergleichsfunktion erfordert zwei Parameter, beide vom Typ Const void*, die auf die Vergleiche der Elemente hinweisen. Die Funktion sollte eine Ganzzahl weniger als, gleich oder mehr als 0 zurückgeben, je nachdem, ob das erste Element vor, an derselben Position bzw. nach dem zweiten Element sortiert werden soll.

Wie QSORT in C funktioniert

Der QSORT () Funktion funktioniert auf folgende Weise:

Notiz: Hier erwägen wir eine int arr [] = 5, 2, 8, 3, 1, 9;

1: Zunächst wird die QSORT -Funktion mit den folgenden Parametern aufgerufen:

QSORT (arr, 6, sizeof (int), Vergleich_Function);

Wenn ARR der Zeiger auf das Array ist, ist 6 die Anzahl der Elemente im Array, die Größe (int) ist die Größe jedes Elements im Array, und Vergleichsfunktion ist die Funktion, die die Reihenfolge bestimmt, in der die Elemente sortiert werden.

2: Die QSORT -Funktion wählt ein Pivot -Element aus. Sagen wir, es wählt es aus 3 Wie der Drehpunkt.

3: Die QSORT-Funktion partitioniert das Array in zwei Sub-Arrays: 2, 1 und 5, 8, 9. Das erste Sub-Array enthält Elemente, die weniger oder gleich dem Drehpunkt sind, und das zweite Sub-Array enthält Elemente, die größer sind als der Drehpunkt.

4: Die QSORT-Funktion ruft sich rekursiv auf jedem der Sub-Arrays auf.

5: Die QSORT-Funktion wählt Pivots für jedes der Sub-Arrays aus. Nehmen wir an, es wählt 1 und 8 als Pivots aus.

6: Die QSORT-Funktionspartitionen in jeweils zwei weitere Sub-Arrays und ruft sich auf jeden dieser Sub-Arrays rekursiv auf.

7: Die QSORT-Funktion kombiniert die sortierten Sub-Arrays in ein einzelnes sortiertes Array: 1, 2 und 5, 8, 9 werden 1, 2, 5, 8, 9.

8: Das gesamte sortierte Array wird zurückgegeben.

Implementierung von QSORT in der C -Programmierung

Der folgende Code zeigt die Implementierung von QSORT Funktion bei der C -Programmierung.

#enthalten
#enthalten
int vergleiche (const void * a1, const void * b1)

return ( *(int *) a1 - *(int *) b1);

int main ()

int i = 0, num = 6;
int array [] = 5, 2, 8, 3, 1, 9;
QSORT (Array, num, sizeof (int), vergleichen);
printf ("sortierte Elemente des Arrays mit QSORT () sind:");
für (i = 0; i < num; i++)
printf ("%d", Array [i]);
Rückkehr 0;

Im obigen Code wird zunächst eine Vergleichsfunktion mit zwei Parametern durchgeführt A1 Und B1. Dann beginnt die Ausführung von Main (). In der Hauptsache initialisieren wir zwei ganzzahlige Variablen wie i = 0 und num = 6. Dann deklarieren wir ein Array mit sechs Elementen als 5, 2, 8, 3, 1, 9. Danach QSORT () Haben Sie drei Parameter des Array -Typs, der Num -Parameter zeigt die Gesamtelemente eines Arrays an, Größe (int) Bezieht sich auf die Gesamtgröße des Arrays und wird verwendet, um Array -Elemente einzeln zu vergleichen. Drucken Sie dann das sortierte Array mithilfe printf () Funktion in c.

Ausgang

Abschluss

QSORT ist eine leistungsstarke Funktion bei der C -Programmierung für die Sortierung von Arrays jeglicher Art. Es verwendet einen QuickSort -Algorithmus, um die Elemente in aufsteigender oder absteigender Reihenfolge basierend auf einer Vergleichsfunktion zu sortieren. Die obige Anleitung zeigt eine einfache Möglichkeit, QSORT in der C-Programmierung mit einer Schritt-für-Schritt-Arbeit von zu implementieren QSORT Algorithmus.