Hvordan sortere matriser med Qsort i C

Hvordan sortere matriser med Qsort i C
Sortering er en grunnleggende operasjon innen dataprogrammering, og det innebærer å arrangere en samling av data i en bestemt rekkefølge. En måte å sortere en rekke elementer i C er å bruke Qsort () funksjon, som er en del av standardbiblioteket. Denne funksjonen tar en matrise, størrelsen og en sammenligningsfunksjon som argumenter og sorterer matrisen i stigende rekkefølge som standard som standard.

Denne retningslinjen illustrerer sortering av matriser ved å bruke Qsort () Funksjon i C og hjelper deg også å forstå det ved C -eksempelkoder.

Qsort () i C

C Standardbibliotek letter oss med Qsort () funksjon som ganske enkelt brukes til å sortere matriser. Det er en ekstremt optimalisert og rask funksjon som kan fungere med hvilken som helst datatype -matrise.

Header-fil ved hjelp av qsort () i c

De Qsort () Metoden er definert i stdlib.h overskriftsfil, som må defineres før implementering Qsort () I et C -program.

#inkludere

Erklæring om QSORT ()

Erklæringen om Qsort () Funksjonen er som følger:

void Qsort (void *base, number_of_elements, size_of_element, comparison_function)

Parametre for QSORT () -funksjonen

Parametrene til Qsort () funksjon er:

utgangspunkt: Peker til det første elementet i matrisen som skal sorteres.

number_of_elements: Antall elementer i matrisen som skal sorteres.

størrelse_of_element: Størrelse i byte av hvert element i matrisen.

sammenligning_funksjon: Peker til en sammenligningsfunksjon som definerer rekkefølgen på elementene.

Hva er sammenligningsfunksjon i QSORT ()

Sammenligningsfunksjonen tar to parametere, begge av typen const void*, som peker på at elementene blir sammenlignet. Funksjonen skal returnere et heltall mindre enn, lik eller større enn 0, avhengig av om det første elementet skal sorteres før, i samme posisjon eller etter det andre elementet, henholdsvis.

Hvordan Qsort fungerer i C

De Qsort () Funksjon fungerer på følgende måte:

Merk: Her vurderer vi en int arr [] = 5, 2, 8, 3, 1, 9;

1: Opprinnelig vil QSORT -funksjonen bli kalt med følgende parametere:

Qsort (arr, 6, størrelse av (int), sammenligning_funksjon);

Hvor ARR er pekeren til matrisen, er 6 antall elementer i matrisen, størrelse av (int) er størrelsen på hvert element i matrisen, og sammenligning_funksjon er funksjonen som bestemmer rekkefølgen elementene er sortert.

2: QSort -funksjonen velger et pivotelement. La oss si at det velger 3 som sving.

3: QSORT-funksjonen deler opp matrisen i to underarriser: 2, 1 og 5, 8, 9. Den første under-arrayen inneholder elementer som er mindre enn eller lik pivoten, og den andre underarrayen inneholder elementer som er større enn pivoten.

4: QSORT-funksjonen kaller seg rekursivt på hver av under-arrays.

5: QSort-funksjonen velger svinger for hver av under-arrays. La oss si at det velger 1 og 8 som svingninger.

6: QSORT-funksjonen partisjoner hver undergruppe i ytterligere to under-arrays, og kaller seg rekursivt på hver av disse under-arrays.

7: QSORT-funksjonen kombinerer den sorterte under-arrays tilbake til en enkelt sortert matrise: 1, 2 og 5, 8, 9 Bli 1, 2, 5, 8, 9.

8: Hele sorterte matrisen returneres.

Implementering av QSORT i C -programmering

Følgende kode viser implementering av Qsort Funksjon i C -programmering.

#inkludere
#inkludere
int sammenlign (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 (matrise, num, størrelse av (int), sammenlign);
printf ("Sorterte elementer av matrise ved bruk av qsort () er:");
for (i = 0; i < num; i++)
printf ("%d", array [i]);
retur 0;

I koden ovenfor er det for det første laget en sammenligningsfunksjon med to parametere A1 og B1. Så starter utførelsen fra Main (). I hovedsak initialiserer vi to heltallvariabler som i = 0 og num = 6. Så erklærer vi en rekke med seks elementer som 5, 2, 8, 3, 1, 9. Etter dette Qsort () har tre parametere av array -type, NUM -parameteren forteller de totale elementene i en matrise, størrelse av (int) refererer til den totale størrelsen på matrisen, og sammenligner brukes til å sammenligne matriseelementer en etter en. Skriv deretter ut den sorterte matrisen ved hjelp av printf () funksjon i c.

Produksjon

Konklusjon

Qsort er en kraftig funksjon i C -programmering for sortering av matriser av hvilken som helst type. Den bruker en QuickSort -algoritme for å sortere elementene i stigende eller synkende rekkefølge basert på en sammenligningsfunksjon. Ovennevnte guide viser deg en enkel måte å implementere QSORT i C-programmering med en trinn-for-trinns arbeid av Qsort algoritme.