Kā kārtot masīvus ar qsort() programmā C

Ka Kartot Masivus Ar Qsort Programma C



Kārtošana ir pamatdarbība datorprogrammēšanā, un tā ietver datu kolekcijas sakārtošanu noteiktā secībā. Viens veids, kā kārtot elementu masīvu C, ir izmantot qsort() funkcija, kas ir daļa no standarta bibliotēkas. Šī funkcija izmanto masīvu, tā lielumu un salīdzināšanas funkciju kā argumentus un pēc noklusējuma sakārto masīvu augošā secībā.

Šī vadlīnija ilustrē masīvu šķirošanu, izmantojot qsort() funkcija C, kā arī palīdz to saprast, izmantojot C piemēru kodus.

qsort() valodā C

C standarta bibliotēka atvieglo mūs ar qsort() funkcija, ko vienkārši izmanto masīvu kārtošanai. Tā ir ārkārtīgi optimizēta un ātra funkcija, kas var darboties ar jebkura veida datu masīvu.







Header-File, izmantojot qsort() C

The qsort() metode ir definēta iekšpusē stdlib.h galvenes fails, kas jādefinē pirms ieviešanas qsort() C programmā.



#include

qsort() deklarācija

Deklarācija par qsort() funkcija ir šāda:



nederīgs qsort ( nederīgs * bāze , elementu_skaits , elementa_lielums , salīdzināšanas_funkcija )

Funkcijas qsort() parametri

Parametri qsort() funkcijas ir:





bāze: Norādiet uz pirmo kārtojamo masīva elementu.

elementu_skaits: Kārtojamo elementu skaits masīvā.



size_of_element: Katra masīva elementa lielums baitos.

salīdzināšanas_funkcija: Rādītājs uz salīdzināšanas funkciju, kas nosaka elementu secību.

Kas ir salīdzināšanas funkcija qsort()

Salīdzināšanas funkcijai ir divi parametri, abi tipi const void*, kas norāda uz salīdzināmajiem elementiem. Funkcijai ir jāatgriež vesels skaitlis, kas ir mazāks par 0, vienāds ar vai lielāks par 0, atkarībā no tā, vai pirmais elements ir jākārto attiecīgi pirms, tajā pašā pozīcijā vai pēc otrā elementa.

Kā qsort darbojas C

The qsort() funkcija darbojas šādi:

Piezīme: Šeit mēs apsveram vienu int arr[] = {5, 2, 8, 3, 1, 9};

1: Sākotnēji funkcija qsort tiks izsaukta ar šādiem parametriem:

qsort ( arr , 6 , izmērs ( starpt ) , salīdzināšanas_funkcija ) ;

kur arr ir masīva rādītājs, 6 ir elementu skaits masīvā, sizeof(int) ir katra masīva elementa lielums, un salīdzināšanas_funkcija ir funkcija, kas nosaka elementu kārtošanas secību.

2: Funkcija qsort atlasa pagrieziena elementu. Pieņemsim, ka tas atlasa 3 kā šarnīrs.

3: Funkcija qsort sadala masīvu divos apakšmasīvos: {2, 1} un {5, 8, 9}. Pirmajā apakšmasīvā ir elementi, kas ir mazāki vai vienādi ar rakursu, un otrajā apakšmasīvā ir elementi, kas ir lielāki par pivot.

4: Funkcija qsort rekursīvi izsauc sevi katrā apakšmasīvā.

5: Funkcija qsort atlasa pagriezienus katram apakšmasīvam. Pieņemsim, ka tas izvēlas 1 un 8 kā pagriezienus.

6: Funkcija qsort sadala katru apakšmasīvu vēl divos apakšmasīvos un rekursīvi izsauc sevi katrā no šiem apakšmasīviem.

7: Funkcija qsort apvieno sakārtotos apakšmasīvus atpakaļ vienā sakārtotā masīvā: {1, 2} un {5, 8, 9} kļūst par {1, 2, 5, 8, 9}.

8: Tiek atgriezts viss sakārtotais masīvs.

Qsort ieviešana C programmēšanā

Šis kods parāda ieviešanu qsort funkcija C programmēšanā.

#include

#include

starpt salīdzināt ( konst nederīgs * a1 , konst nederīgs * b1 )

{

atgriezties ( * ( starpt * ) a1 - * ( starpt * ) b1 ) ;

}

starpt galvenais ( )

{

starpt i = 0 , uz viena = 6 ;

starpt masīvs [ ] = { 5 , 2 , 8 , 3 , 1 , 9 } ;

qsort ( masīvs , uz viena , izmērs ( starpt ) , salīdzināt ) ;

printf ( 'Sakārtotie masīva elementi, izmantojot qsort(), ir: ) ;

priekš ( i = 0 ; i < uz viena ; i ++ ) {

printf ( '%d' , masīvs [ i ] ) ; }

atgriezties 0 ;

}

Iepriekš minētajā kodā vispirms tiek veikta salīdzināšanas funkcija ar diviem parametriem a1 un b1 . Pēc tam izpilde sākas no main(). Galvenokārt mēs inicializējam divus veselus mainīgos lielumus kā i=0 un num=6. Tad mēs deklarējam masīvu ar sešiem elementiem kā {5, 2, 8, 3, 1, 9} . Pēc tam qsort() ir trīs masīva tipa parametri, parametrs num norāda kopējos masīva elementus, izmērs(int) attiecas uz kopējo masīva lielumu, un salīdzināšana tiek izmantota, lai salīdzinātu masīva elementus pa vienam. Pēc tam izdrukājiet sakārtoto masīvu, izmantojot printf() funkcija C.

Izvade

Secinājums

qsort ir spēcīga C programmēšanas funkcija jebkura veida masīvu šķirošanai. Tas izmanto ātrās kārtošanas algoritmu, lai kārtotu elementus augošā vai dilstošā secībā, pamatojoties uz salīdzināšanas funkciju. Iepriekš sniegtajā rokasgrāmatā parādīts vienkāršs veids, kā ieviest qsort C programmēšanā, soli pa solim veicot qsort algoritms.