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
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.