A stable_sort() függvény használata C++-ban

A Stable Sort Fuggveny Hasznalata C Ban



A C++-ban különféle funkciók állnak rendelkezésre a sorozat elemeinek meghatározott sorrendbe rendezésére. A rendezési függvényhez hasonlóan a stable_sort a tartomány elemeinek rendezésére szolgál (első, utolsó). A legfontosabb különbség köztük az, hogy a stabil_sort megtartja az egyenlő értékű elemek egymáshoz viszonyított sorrendjét.

Ebben a részletes oktatóanyagban bemutatjuk a működését stabil_sort() C++ nyelven.

A stable_sort() függvény használata C++-ban

C++ nyelven a stabil_sort() egy szabványos könyvtári algoritmus, amely növekvő sorrendbe rendezi az elemeket, és ugyanazt a sorrendet tartja az egyenértékű elemek számára. Ez azt jelenti, hogy ha két elem egyenlő, akkor a rendezés előtt a tárolóban elsőként megjelenő elem továbbra is elsőként jelenik meg a rendezett listában. Ez a funkció úgy működik, hogy ismételten felosztja a tárolót (tömbök, vektorok, csatolt listák), külön-külön rendezi őket, majd egyesíti őket, hogy megkapja a rendezett tárolót. Ez alá tartozik a fejléc fájl.







A használat általános szintaxisa stabil_sort() C++-ban ez:



stabil_sort ( Először a RandomAccessIterator , RandomAccessIterator utolsó ) ;

Itt, a első az iterátor, amely a rendezendő tartomány első elemére mutat, és a utolsó az iterátor, amely a rendezendő tartomány utolsó eleme utáni elemre mutat.



A stabil_sort() A függvény nem csökkenő sorrendet használ a [first, last] tartomány bejegyzéseinek rendezésére, azaz a legkisebbtől a legnagyobb elemig. A funkció alapértelmezés szerint összehasonlítja az elemeket a kisebb, mint operátor (<).





1. példa

Tekintsük az alábbi példakódot, ebben a kódban hoztuk létre a vektor lista és inicializálta néhány értékkel. Ezután a stabil_sort() hogy az adott vektor értékeit növekvő sorrendbe rendezzük. A rendezetlen és rendezett vektorok a konzolon a tartományalapú hurok segítségével kerülnek kinyomtatásra.

#include

#include

#include

névtér std használatával ;



int fő- ( )

{

vektor < int > lista = { 5 , 2 , 25 , 4 , 9 , 33 , 38 , 26 } ;

cout << 'Számok rendezés előtt:' ;

az egyes ( lista. kezdődik ( ) , lista. vége ( ) , [ ] ( int x ) {

cout << x << ' ' ;

} ) ;

stabil_sort ( lista. kezdődik ( ) , lista. vége ( ) ) ;

cout << ' \n Számok rendezés után: ' ;

az egyes ( lista. kezdődik ( ) , lista. vége ( ) , [ ] ( int x ) {

cout << x << ' ' ;

} ) ;



Visszatérés 0 ;

}




2. példa

Az alábbi példában létrehoztunk egy egész szám tömböt, és inicializáltuk néhány értékkel. Ekkor alapértelmezés szerint a stabil_sort() növekvő sorrendbe rendezi az elemeket:

#include

#include

névtér std használatával ;

int fő- ( )

{

int sor [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;

int n = mérete ( sor ) / mérete ( sor [ 0 ] ) ;

cout << 'Az eredeti tömb a következő: \n ' ;

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

cout << sor [ én ] << ' ' ;

}

stabil_sort ( sor , sor + n ) ;

cout << ' \n A tömb rendezés után a következő: \n ' ;

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

cout << sor [ én ] << ' ' ;

}

Visszatérés 0 ;

}

3. példa

A stabil_sort a harmadik paramétert használja az elem rendezési sorrendjének megadásához. Az alábbi példában a nagyobb () funkcióval stabil_sort() hogy a tömb elemeit csökkenő sorrendbe rendezzük

#include

#include

névtér std használatával ;

int fő- ( )

{

int sor [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;

int n = mérete ( sor ) / mérete ( sor [ 0 ] ) ;

cout << 'Eredeti tömb: \n ' ;

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

cout << sor [ én ] << ' ' ;

}

stabil_sort ( sor , sor + n , nagyobb < int > ( ) ) ;

cout << ' \n Tömb rendezés után: \n ' ;

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

cout << sor [ én ] << ' ' ;

}

Visszatérés 0 ;

}

Bottom Line

A stabil_sort() A függvény a C++-ban egy szabványos könyvtári algoritmus, amellyel egy tárolóban lévő elemeket nem csökkenő sorrendbe rendezik, miközben megtartják az azonos értékű tárolóban lévő elemek egymáshoz viszonyított sorrendjét. Különféle tárolókkal, például tömbökkel, vektorokkal és csatolt listákkal használható. Ezenkívül egy harmadik paraméterre van szükség az elemek rendezési sorrendjének megadásához.