Com utilitzar la funció stable_sort() en C++

Com Utilitzar La Funcio Stable Sort En C



Hi ha diverses funcions en C++ per ordenar els elements de la seqüència en un ordre específic. De manera semblant a la funció d'ordenació, l'estable_sort s'utilitza per ordenar els elements de l'interval (primer, darrer). La diferència clau entre ells és que classe_estable manté l'ordre relatiu dels elements amb valors iguals.

En aquest tutorial detallat, mostrarem el funcionament del Stable_sort() en C++.

Com utilitzar la funció stable_sort() en C++

En C++, el Stable_sort() és un algorisme de biblioteca estàndard que ordena els elements en ordre creixent i manté el mateix ordre per als elements equivalents. Això vol dir que si dos elements són iguals, l'element que apareix primer al contenidor abans de l'ordenació continuarà apareixent primer a la llista ordenada. Aquesta funció funciona dividint repetidament el contenidor (matrius, vectors, llistes enllaçades), ordenant-los per separat i després fusionant-los per obtenir el contenidor ordenat. Es troba sota el fitxer de capçalera.







La sintaxi general per utilitzar el Stable_sort() en C++ és:



classe_estable ( Primer RandomAccessIterator , RandomAccessIterator últim ) ;

Aquí, el primer és l'iterador que apunta al primer element de l'interval que s'ha d'ordenar i el darrer és l'iterador que apunta a l'element després de l'últim element de l'interval que s'ha d'ordenar.



El Stable_sort() La funció utilitza un ordre no decreixent per ordenar les entrades de l'interval [primer, darrer], és a dir, de l'element més petit a l'element més gran. La funció per defecte compara els elements a través de operador inferior (<).





Exemple 1

Considereu el codi d'exemple següent, en aquest codi, hem creat el llista vectorial i el va inicialitzar amb alguns valors. A continuació, hem utilitzat el Stable_sort() ordenar els valors del vector donat en ordre ascendent. Els vectors no ordenats i ordenats s'imprimeixen a la consola mitjançant el bucle basat en intervals.

#inclou

#inclou

#inclou

utilitzant l'espai de noms std ;



int principal ( )

{

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

cout << 'Nombres abans d'ordenar:' ;

per cadascú ( llista. començar ( ) , llista. final ( ) , [ ] ( int x ) {

cout << x << ' ' ;

} ) ;

classe_estable ( llista. començar ( ) , llista. final ( ) ) ;

cout << ' \n Nombres després d'ordenar: ' ;

per cadascú ( llista. començar ( ) , llista. final ( ) , [ ] ( int x ) {

cout << x << ' ' ;

} ) ;



tornar 0 ;

}




Exemple 2

A l'exemple que es mostra a continuació, hem creat una matriu d'enters i l'hem inicialitzat amb alguns valors. Aleshores, per defecte, el Stable_sort() ordena els elements en ordre ascendent:

#inclou

#inclou

utilitzant l'espai de noms std ;

int principal ( )

{

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

int n = mida de ( matriu ) / mida de ( matriu [ 0 ] ) ;

cout << 'La matriu original és: \n ' ;

per ( int i = 0 ; i < n ; ++ i ) {

cout << matriu [ i ] << ' ' ;

}

classe_estable ( matriu , matriu + n ) ;

cout << ' \n La matriu després de la classificació és: \n ' ;

per ( int i = 0 ; i < n ; ++ i ) {

cout << matriu [ i ] << ' ' ;

}

tornar 0 ;

}

Exemple 3

El classe_estable pren el tercer paràmetre per especificar l'ordre per ordenar l'element. En l'exemple següent, hem utilitzat el més gran () funcionar amb Stable_sort() per ordenar els elements de la matriu en ordre descendent

#inclou

#inclou

utilitzant l'espai de noms std ;

int principal ( )

{

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

int n = mida de ( matriu ) / mida de ( matriu [ 0 ] ) ;

cout << 'Matriu original: \n ' ;

per ( int i = 0 ; i < n ; ++ i ) {

cout << matriu [ i ] << ' ' ;

}

classe_estable ( matriu , matriu + n , més gran < int > ( ) ) ;

cout << ' \n Matriu després d'ordenar: \n ' ;

per ( int i = 0 ; i < n ; ++ i ) {

cout << matriu [ i ] << ' ' ;

}

tornar 0 ;

}

Linia inferior

El Stable_sort() La funció en C++ és un algorisme de biblioteca estàndard que s'utilitza per ordenar els elements d'un contenidor en ordre no decreixent mentre es manté l'ordre relatiu dels elements en un contenidor amb els mateixos valors. Es pot utilitzar amb diferents contenidors com matrius, vectors i llistes enllaçades. A més, es necessita un tercer paràmetre per especificar l'ordre d'ordenació dels elements.