In deze detail-tutorial laten we de werking zien van de stabiel_sorteren() in C++.
Hoe de functie stable_sort () in C ++ te gebruiken
In C++ is de stabiel_sorteren() is een standaard bibliotheekalgoritme dat de elementen in oplopende volgorde rangschikt en dezelfde volgorde aanhoudt voor de equivalente elementen. Dit betekent dat als twee elementen gelijk zijn, het element dat als eerste in de container verschijnt vóór het sorteren, nog steeds als eerste in de gesorteerde lijst verschijnt. Deze functie werkt door de container herhaaldelijk te verdelen (arrays, vectoren, gekoppelde lijsten), ze afzonderlijk te sorteren en ze vervolgens samen te voegen om de gesorteerde container te krijgen. Het komt onder de
De algemene syntaxis voor het gebruik van de stabiel_sorteren() in C++ is:
stabiel_sort ( Eerst RandomAccessIterator , RandomAccessIterator als laatste ) ;
Hier de Eerst is de iterator die wijst naar het eerste element in het bereik dat moet worden gesorteerd, en de laatst is de iterator die wijst naar het element na het laatste element in het bereik dat moet worden gesorteerd.
De stabiel_sorteren() functie gebruikt een niet-aflopende volgorde om de ingangen in het bereik [eerste, laatste] te sorteren, d.w.z. van het kleinste tot het grootste element. De functie vergelijkt standaard de items via de kleiner-dan-operator (<).
voorbeeld 1
Beschouw de onderstaande voorbeeldcode, in deze code hebben we het vectorlijst en initialiseerde het met enkele waarden. Vervolgens gebruikten we de stabiel_sorteren() om de waarden van de gegeven vector in oplopende volgorde te sorteren. De ongesorteerde en gesorteerde vectoren worden op de console afgedrukt met behulp van de op bereik gebaseerde lus.
#include#include
#include
namespace std; gebruiken ;
int voornaamst ( )
{
vector < int > lijst = { 5 , 2 , 25 , 4 , 9 , 33 , 38 , 26 } ;
cout << 'Nummers voor sorteren: ' ;
voor_elk ( lijst. beginnen ( ) , lijst. einde ( ) , [ ] ( int X ) {
cout << X << ' ' ;
} ) ;
stabiel_sort ( lijst. beginnen ( ) , lijst. einde ( ) ) ;
cout << ' \N Nummers na sorteren: ' ;
voor_elk ( lijst. beginnen ( ) , lijst. einde ( ) , [ ] ( int X ) {
cout << X << ' ' ;
} ) ;
opbrengst 0 ;
}
Voorbeeld 2
In het onderstaande voorbeeld hebben we een integer-array gemaakt en deze geïnitialiseerd met enkele waarden. Dan is standaard de stabiel_sorteren() sorteert de elementen in oplopende volgorde:
#include#include
namespace std; gebruiken ;
int voornaamst ( )
{
int reeks [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;
int N = De grootte van ( reeks ) / De grootte van ( reeks [ 0 ] ) ;
cout << 'Oorspronkelijk array is: \N ' ;
voor ( int i = 0 ; i < N ; ++ i ) {
cout << reeks [ i ] << ' ' ;
}
stabiel_sort ( reeks , reeks + N ) ;
cout << ' \N Array na sorteren is: \N ' ;
voor ( int i = 0 ; i < N ; ++ i ) {
cout << reeks [ i ] << ' ' ;
}
opbrengst 0 ;
}
Voorbeeld 3
De stabiel_sort neemt de derde parameter om de volgorde voor het sorteren van het element te specificeren. In het onderstaande voorbeeld hebben we de groter() functie met stabiel_sorteren() om de elementen van de array in aflopende volgorde te sorteren
#include#include
namespace std; gebruiken ;
int voornaamst ( )
{
int reeks [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;
int N = De grootte van ( reeks ) / De grootte van ( reeks [ 0 ] ) ;
cout << 'Originele reeks: \N ' ;
voor ( int i = 0 ; i < N ; ++ i ) {
cout << reeks [ i ] << ' ' ;
}
stabiel_sort ( reeks , reeks + N , groter < int > ( ) ) ;
cout << ' \N Array na sorteren: \N ' ;
voor ( int i = 0 ; i < N ; ++ i ) {
cout << reeks [ i ] << ' ' ;
}
opbrengst 0 ;
}
Het komt erop neer
De stabiel_sorteren() functie in C ++ is een standaard bibliotheekalgoritme dat wordt gebruikt om elementen in een container in niet-aflopende volgorde te sorteren, terwijl de relatieve volgorde van elementen in een container met dezelfde waarden behouden blijft. Het kan worden gebruikt met verschillende containers zoals arrays, vectoren en gekoppelde lijsten. Bovendien is er een derde parameter nodig om de volgorde voor sorteerelementen te specificeren.