Hoe de functie stable_sort () in C ++ te gebruiken

Hoe De Functie Stable Sort In C Te Gebruiken



Er zijn verschillende functies in C++ om de elementen van de reeks in een specifieke volgorde te sorteren. Vergelijkbaar met de sorteerfunctie, wordt de stable_sort gebruikt om de elementen in het bereik te sorteren (eerste, laatste). Het belangrijkste verschil tussen hen is dat de stabiel_sort handhaaft de relatieve volgorde van de elementen met gelijke waarden.

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





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.