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