Cum se utilizează funcția stable_sort() în C++

Cum Se Utilizeaza Functia Stable Sort In C



Există diverse funcții în C++ pentru a sorta elementele secvenței într-o anumită ordine. Similar cu funcția de sortare, stable_sort este folosit pentru a sorta elementele din interval (primul, ultimul). Diferența cheie dintre ele este că stabil_sort menţine ordinea relativă a elementelor cu valori egale.

În acest tutorial de detalii, vom arăta funcționarea stable_sort() în C++.

Cum se utilizează funcția stable_sort() în C++

În C++, stable_sort() este un algoritm de bibliotecă standard care aranjează elementele în ordine crescătoare și păstrează aceeași ordine pentru elementele echivalente. Aceasta înseamnă că, dacă două elemente sunt egale, elementul care apare primul în container înainte de sortare va apărea în continuare primul în lista sortată. Această funcție funcționează prin împărțirea în mod repetat a containerului (matrice, vectori, liste legate), sortându-le separat și apoi îmbinându-le pentru a obține containerul sortat. Vine sub fișier antet.





Sintaxa generală pentru utilizarea stable_sort() în C++ este:



stabil_sort ( RandomAccessIterator mai întâi , RandomAccessIterator ultimul ) ;

Aici primul este iteratorul care indică primul element din intervalul de sortat și ultimul este iteratorul care indică elementul după ultimul element din interval care urmează să fie sortat.



The stable_sort() funcția folosește ordinea nedescrescătoare pentru a sorta intrările din intervalul [primul, ultimul], adică de la cel mai mic la cel mai mare element. Funcția în mod implicit compară elementele prin intermediul operator mai mic decât (<).





Exemplul 1

Luați în considerare exemplul de cod de mai jos, în acest cod, am creat codul lista de vectori și l-a inițializat cu niște valori. Apoi, am folosit stable_sort() pentru a sorta valorile vectorului dat în ordine crescătoare. Vectorii nesortați și sortați sunt imprimați pe consolă folosind bucla bazată pe interval.

#include

#include

#include

folosind namespace std ;



int principal ( )

{

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

cout << 'Numerele înainte de sortare: ' ;

pentru fiecare ( listă. ÎNCEPE ( ) , listă. Sfârşit ( ) , [ ] ( int X ) {

cout << X << ' ' ;

} ) ;

stabil_sort ( listă. ÎNCEPE ( ) , listă. Sfârşit ( ) ) ;

cout << ' \n Numerele după sortare: ' ;

pentru fiecare ( listă. ÎNCEPE ( ) , listă. Sfârşit ( ) , [ ] ( int X ) {

cout << X << ' ' ;

} ) ;



întoarcere 0 ;

}




Exemplul 2

În exemplul de mai jos, am creat un tablou întreg și am inițializat-o cu câteva valori. Apoi, implicit, stable_sort() sortează elementele în ordine crescătoare:

#include

#include

folosind namespace std ;

int principal ( )

{

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

int n = dimensiunea ( matrice ) / dimensiunea ( matrice [ 0 ] ) ;

cout << „Matricea originală este: \n ' ;

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

cout << matrice [ i ] << ' ' ;

}

stabil_sort ( matrice , matrice + n ) ;

cout << ' \n Matricea după sortare este: \n ' ;

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

cout << matrice [ i ] << ' ' ;

}

întoarcere 0 ;

}

Exemplul 3

The stabil_sort ia al treilea parametru pentru a specifica ordinea de sortare a elementului. În exemplul de mai jos, am folosit mai mare() functioneaza cu stable_sort() pentru a sorta elementele matricei în ordine descrescătoare

#include

#include

folosind namespace std ;

int principal ( )

{

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

int n = dimensiunea ( matrice ) / dimensiunea ( matrice [ 0 ] ) ;

cout << „Matrice originală: \n ' ;

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

cout << matrice [ i ] << ' ' ;

}

stabil_sort ( matrice , matrice + n , mai mare < int > ( ) ) ;

cout << ' \n Matrice după sortare: \n ' ;

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

cout << matrice [ i ] << ' ' ;

}

întoarcere 0 ;

}

Concluzie

The stable_sort() funcția în C++ este un algoritm de bibliotecă standard folosit pentru a sorta elementele dintr-un container în ordine nedescrescătoare, menținând în același timp ordinea relativă a elementelor dintr-un container cu aceleași valori. Poate fi folosit cu diferite containere, cum ar fi matrice, vectori și liste legate. În plus, este nevoie de un al treilea parametru pentru a specifica ordinea pentru sortarea elementelor.