A tömbök rendezése a qsort() segítségével C-ben

A Tombok Rendezese A Qsort Segitsegevel C Ben



A rendezés a számítógépes programozás alapvető művelete, és magában foglalja az adatgyűjtés meghatározott sorrendbe rendezését. Az elemek tömbjének C-ben való rendezésének egyik módja a qsort() függvény, amely a szabványos könyvtár része. Ez a függvény argumentumként egy tömböt, annak méretét és egy összehasonlító függvényt vesz fel, és alapértelmezés szerint növekvő sorrendbe rendezi a tömböt.

Ez az útmutató bemutatja a tömbök rendezését a qsort() függvény C nyelvben, és C példakódokkal is segít megérteni.

qsort() C-ben

A C standard könyvtár megkönnyíti számunkra qsort() függvény, amelyet egyszerűen a tömbök rendezésére használnak. Ez egy rendkívül optimalizált és gyors funkció, amely bármilyen adattípus tömbjével működik.







Header-File a qsort() használatával C-ben

A qsort() metódus belül van definiálva stdlib.h fejlécfájlt, amelyet a megvalósítás előtt meg kell határozni qsort() egy C programban.



#include

A qsort() deklarációja

A nyilatkozat qsort() a funkció a következő:



üres qsort ( üres * bázis , elemek_száma , elem_mérete , összehasonlító_függvény )

A qsort() függvény paraméterei

A paraméterek a qsort() funkciók a következők:





bázis: Mutasson a tömb első rendezendő elemére.

number_of_elements: A rendezendő tömb elemeinek száma.



size_of_element: A tömb minden elemének mérete bájtban.

összehasonlítási_függvény: Mutató egy összehasonlító függvényre, amely meghatározza az elemek sorrendjét.

Mi az összehasonlító függvény a qsort()-ban

Az összehasonlító függvény két paramétert vesz fel, mindkettő const void* típusú, amelyek az összehasonlítandó elemekre mutatnak. A függvénynek 0-nál kisebb, egyenlő vagy nagyobb egész számot kell visszaadnia, attól függően, hogy az első elemet a második elem előtt, ugyanabban a helyen vagy a második elem után kell-e rendezni.

Hogyan működik a qsort C-ben

A qsort() funkció a következő módon működik:

Jegyzet: Itt egy int arr[] = {5, 2, 8, 3, 1, 9};

1: Kezdetben a qsort függvényt a következő paraméterekkel hívják meg:

qsort ( arr , 6 , mérete ( int ) , összehasonlító_függvény ) ;

ahol arr a tömbre mutató mutató, 6 a tömb elemeinek száma, a sizeof(int) a tömb egyes elemeinek mérete, és az összehasonlítás_függvény az a függvény, amely meghatározza az elemek rendezési sorrendjét.

2: A qsort függvény kiválaszt egy pivot elemet. Tegyük fel, hogy kiválaszt 3 mint a forgócsap.

3: A qsort függvény a tömböt két altömbre particionálja: {2, 1} és {5, 8, 9}. Az első altömb olyan elemeket tartalmaz, amelyek kisebbek vagy egyenlőek, mint a pivot, a második altömb pedig a pivotnál nagyobb elemeket tartalmaz.

4: A qsort függvény rekurzív módon meghívja magát az egyes altömbökön.

5: A qsort függvény minden egyes altömbhöz kiválasztja a pivotokat. Tegyük fel, hogy az 1-et és a 8-at választja ki forgáspontként.

6: A qsort függvény minden egyes altömböt további két altömbre particionál, és rekurzív módon meghívja magát ezeken az altömbökön.

7: A qsort függvény a rendezett altömböket egyetlen rendezett tömbbe egyesíti: {1, 2} és {5, 8, 9} lesz {1, 2, 5, 8, 9}.

8: A teljes rendezett tömb visszaadásra kerül.

A qsort megvalósítása C programozásban

A következő kód a megvalósítását mutatja be qsort funkció a C programozásban.

#include

#include

int összehasonlítani ( const üres * a1 , const üres * b1 )

{

Visszatérés ( * ( int * ) a1 - * ( int * ) b1 ) ;

}

int fő- ( )

{

int én = 0 , az egyiken = 6 ;

int sor [ ] = { 5 , 2 , 8 , 3 , 1 , 9 } ;

qsort ( sor , az egyiken , mérete ( int ) , összehasonlítani ) ;

printf ( 'A tömb qsort() segítségével rendezett elemei a következők: ) ;

számára ( én = 0 ; én < az egyiken ; én ++ ) {

printf ( '%d' , sor [ én ] ) ; }

Visszatérés 0 ;

}

A fenti kódban először egy összehasonlító függvény készül két paraméterrel a1 és b1 . Ezután a végrehajtás a main()-ból indul. Főként két egész változót inicializálunk i=0 és num=6 értékre. Ezután egy hat elemű tömböt deklarálunk mint {5, 2, 8, 3, 1, 9} . Ezt követően qsort() három tömb típusú paraméterrel rendelkezik, a num paraméter megmondja a tömb összes elemét, mérete (int) a tömb teljes méretére utal, az összehasonlítás pedig a tömbelemek egyenkénti összehasonlítására szolgál. Ezután nyomtassa ki a rendezett tömböt a segítségével printf() funkció C-ben.

Kimenet

Következtetés

qsort egy hatékony funkció a C programozásban bármilyen típusú tömbök rendezésére. Gyorsrendezési algoritmust használ az elemek növekvő vagy csökkenő sorrendbe rendezésére egy összehasonlító függvény alapján. A fenti útmutató bemutatja a qsort egyszerű megvalósítási módját C programozásban, lépésről lépésre qsort algoritmus.