Slik bruker du funksjonen stable_sort() i C++

Slik Bruker Du Funksjonen Stable Sort I C



Det er forskjellige funksjoner i C++ for å sortere elementene i sekvensen i en bestemt rekkefølge. I likhet med sorteringsfunksjonen brukes stable_sort til å sortere elementene i området (først, sist). Den viktigste forskjellen mellom dem er at stabil_sort opprettholder den relative rekkefølgen av elementene med like verdier.

I denne detaljopplæringen vil vi vise hvordan stable_sort() i C++.

Slik bruker du funksjonen stable_sort() i C++

I C++ er stable_sort() er en standard bibliotekalgoritme som arrangerer elementene i økende rekkefølge og holder samme rekkefølge for de ekvivalente elementene. Dette betyr at hvis to elementer er like, vil elementet som vises først i beholderen før sortering fortsatt vises først i den sorterte listen. Denne funksjonen fungerer ved gjentatte ganger å dele beholderen (matriser, vektorer, koblede lister), sortere dem separat, og deretter slå dem sammen for å få den sorterte beholderen. Det kommer under header-fil.







Den generelle syntaksen for bruk av stable_sort() i C++ er:



stabil_sort ( RandomAccessIterator først , RandomAccessIterator sist ) ;

Her, den først er iteratoren som peker til det første elementet i området som skal sorteres, og siste er iteratoren som peker på elementet etter det siste elementet i området som skal sorteres.



De stable_sort() funksjonen bruker ikke-avtagende rekkefølge for å sortere oppføringene i området [første, siste], dvs. fra det minste til det største elementet. Funksjonen som standard sammenligner elementene gjennom mindre enn operatør (<).





Eksempel 1

Tenk på eksempelkoden nedenfor, i denne koden har vi laget vektor liste og initialiserte den med noen verdier. Deretter brukte vi stable_sort() for å sortere verdiene til den gitte vektoren i stigende rekkefølge. De usorterte og sorterte vektorene skrives ut på konsollen ved hjelp av den rekkeviddebaserte løkken.

#include

#inkluder

#include

bruker navneområde std ;



int hoved- ( )

{

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

cout << 'Tall før sortering: ' ;

for hver ( liste. begynne ( ) , liste. slutt ( ) , [ ] ( int x ) {

cout << x << ' ' ;

} ) ;

stabil_sort ( liste. begynne ( ) , liste. slutt ( ) ) ;

cout << ' \n Tall etter sortering: ' ;

for hver ( liste. begynne ( ) , liste. slutt ( ) , [ ] ( int x ) {

cout << x << ' ' ;

} ) ;



komme tilbake 0 ;

}




Eksempel 2

I eksemplet nedenfor har vi laget en heltallsmatrise og initialisert den med noen verdier. Da er som standard stable_sort() sorterer elementene i stigende rekkefølge:

#include

#include

bruker navneområde std ;

int hoved- ( )

{

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

int n = størrelsen av ( array ) / størrelsen av ( array [ 0 ] ) ;

cout << 'Original matrise er: \n ' ;

til ( int Jeg = 0 ; Jeg < n ; ++ Jeg ) {

cout << array [ Jeg ] << ' ' ;

}

stabil_sort ( array , array + n ) ;

cout << ' \n Matrise etter sortering er: \n ' ;

til ( int Jeg = 0 ; Jeg < n ; ++ Jeg ) {

cout << array [ Jeg ] << ' ' ;

}

komme tilbake 0 ;

}

Eksempel 3

De stabil_sort tar den tredje parameteren for å spesifisere rekkefølgen for sortering av elementet. I eksemplet nedenfor har vi brukt større() funksjon med stable_sort() for å sortere elementene i matrisen i synkende rekkefølge

#include

#include

bruker navneområde std ;

int hoved- ( )

{

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

int n = størrelsen av ( array ) / størrelsen av ( array [ 0 ] ) ;

cout << 'Original Array: \n ' ;

til ( int Jeg = 0 ; Jeg < n ; ++ Jeg ) {

cout << array [ Jeg ] << ' ' ;

}

stabil_sort ( array , array + n , større < int > ( ) ) ;

cout << ' \n Matrise etter sortering: \n ' ;

til ( int Jeg = 0 ; Jeg < n ; ++ Jeg ) {

cout << array [ Jeg ] << ' ' ;

}

komme tilbake 0 ;

}

Bunnlinjen

De stable_sort() funksjon i C++ er en standard bibliotekalgoritme som brukes til å sortere elementer i en beholder i ikke-avtagende rekkefølge, samtidig som den relative rekkefølgen av elementer i en beholder med samme verdier opprettholdes. Den kan brukes med forskjellige beholdere som matriser, vektorer og koblede lister. I tillegg krever det en tredje parameter for å spesifisere rekkefølgen for sorteringselementer.