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.
#inkludereErklæ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.
#inkludereI 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.