Stable_sort()-funktion käyttäminen C++:ssa

Stable Sort Funktion Kayttaminen C Ssa



C++:ssa on useita toimintoja sekvenssin elementtien lajittelemiseksi tiettyyn järjestykseen. Lajittelufunktion tapaan stable_sort-funktiota käytetään alueen elementtien lajitteluun (ensimmäinen, viimeinen). Tärkein ero niiden välillä on, että vakaa_lajittelu ylläpitää samanarvoisten elementtien suhteellista järjestystä.

Tässä yksityiskohtaisessa opetusohjelmassa näytämme järjestelmän toiminnan vakaa_lajittelu() C++:ssa.

Stable_sort()-funktion käyttäminen C++:ssa

C++:ssa vakaa_lajittelu() on standardikirjastoalgoritmi, joka järjestää elementit kasvavaan järjestykseen ja säilyttää saman järjestyksen vastaaville elementeille. Tämä tarkoittaa, että jos kaksi elementtiä ovat yhtä suuret, elementti, joka näkyy ensin säilössä ennen lajittelua, näkyy silti ensimmäisenä lajitetussa luettelossa. Tämä toiminto toimii jakamalla säilön (taulukot, vektorit, linkitetyt luettelot) toistuvasti, lajittelemalla ne erikseen ja yhdistämällä ne, jotta saadaan lajiteltu säilö. Se tulee alle otsikkotiedosto.







Yleinen syntaksi vakaa_lajittelu() C++:ssa on:



vakaa_lajittelu ( RandomAccessIterator ensin , RandomAccessIterator viimeksi ) ;

Tässä, ensimmäinen on iteraattori, joka osoittaa lajiteltavan alueen ensimmäiseen elementtiin, ja kestää on iteraattori, joka osoittaa lajiteltavan alueen viimeisen elementin jälkeen olevaan elementtiin.



The vakaa_lajittelu() funktio käyttää ei-laskevaa järjestystä lajitellakseen merkinnät alueella [ensimmäinen, viimeinen], eli pienimmästä suurimpaan elementtiin. Toiminto oletusarvoisesti vertaa kohteita läpi pienempi kuin operaattori (<).





Esimerkki 1

Harkitse alla olevaa esimerkkikoodia, tässä koodissa olemme luoneet vektoriluettelo ja alustanut sen joillakin arvoilla. Seuraavaksi käytimme vakaa_lajittelu() lajitella annetun vektorin arvot nousevaan järjestykseen. Lajittelemattomat ja lajitellut vektorit tulostetaan konsoliin käyttämällä aluepohjaista silmukkaa.

#include

#sisällytä

#include

käyttämällä nimiavaruutta std ;



int pää ( )

{

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

cout << 'Numerot ennen lajittelua:' ;

jokaiselle ( lista. alkaa ( ) , lista. loppu ( ) , [ ] ( int x ) {

cout << x << ' ' ;

} ) ;

vakaa_lajittelu ( lista. alkaa ( ) , lista. loppu ( ) ) ;

cout << ' \n Numerot lajittelun jälkeen: ' ;

jokaiselle ( lista. alkaa ( ) , lista. loppu ( ) , [ ] ( int x ) {

cout << x << ' ' ;

} ) ;



palata 0 ;

}




Esimerkki 2

Alla olevassa esimerkissä olemme luoneet kokonaislukutaulukon ja alustaneet sen joillakin arvoilla. Sitten oletusarvoisesti vakaa_lajittelu() lajittelee elementit nousevaan järjestykseen:

#include

#include

käyttämällä nimiavaruutta std ;

int pää ( )

{

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

int n = koko ( joukko ) / koko ( joukko [ 0 ] ) ;

cout << 'Alkuperäinen taulukko on: \n ' ;

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

cout << joukko [ i ] << ' ' ;

}

vakaa_lajittelu ( joukko , joukko + n ) ;

cout << ' \n Taulukko lajittelun jälkeen on: \n ' ;

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

cout << joukko [ i ] << ' ' ;

}

palata 0 ;

}

Esimerkki 3

The vakaa_lajittelu ottaa kolmannen parametrin määrittääkseen elementin lajittelujärjestyksen. Alla olevassa esimerkissä olemme käyttäneet suurempi () funktio kanssa vakaa_lajittelu() järjestääksesi taulukon elementit laskevaan järjestykseen

#include

#include

käyttämällä nimiavaruutta std ;

int pää ( )

{

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

int n = koko ( joukko ) / koko ( joukko [ 0 ] ) ;

cout << 'Alkuperäinen taulukko: \n ' ;

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

cout << joukko [ i ] << ' ' ;

}

vakaa_lajittelu ( joukko , joukko + n , suurempi < int > ( ) ) ;

cout << ' \n Taulukko lajittelun jälkeen: \n ' ;

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

cout << joukko [ i ] << ' ' ;

}

palata 0 ;

}

Bottom Line

The vakaa_lajittelu() Funktio C++:ssa on standardikirjastoalgoritmi, jota käytetään lajittelemaan säilön elementit ei-laskevaan järjestykseen säilyttäen samalla säilön elementtien suhteellinen järjestys samoilla arvoilla. Sitä voidaan käyttää eri säilöissä, kuten taulukoissa, vektoreissa ja linkitetyissä luetteloissa. Lisäksi tarvitaan kolmas parametri elementtien lajittelujärjestyksen määrittämiseen.