Kako uporabljati funkcijo stable_sort() v C++

Kako Uporabljati Funkcijo Stable Sort V C



V C++ obstajajo različne funkcije za razvrščanje elementov zaporedja v določenem vrstnem redu. Podobno kot funkcija razvrščanja se stable_sort uporablja za razvrščanje elementov v obsegu (prvi, zadnji). Ključna razlika med njima je, da stabilna_razvrstitev ohranja relativni vrstni red elementov z enakimi vrednostmi.

V tej podrobni vadnici bomo prikazali delovanje stabilno_razvrščanje() v C++.

Kako uporabljati funkcijo stable_sort() v C++

V C++ je stabilno_razvrščanje() je standardni knjižnični algoritem, ki razporeja elemente v naraščajočem vrstnem redu in ohranja enak vrstni red za enakovredne elemente. To pomeni, da če sta dva elementa enaka, bo element, ki se pojavi prvi v vsebniku pred razvrščanjem, še vedno prikazan prvi na razvrščenem seznamu. Ta funkcija deluje tako, da večkrat razdeli vsebnik (matrike, vektorje, povezane sezname), jih razvrsti ločeno in jih nato združi, da dobimo razvrščeni vsebnik. Spada pod naslovna datoteka.







Splošna sintaksa za uporabo stabilno_razvrščanje() v C++ je:



stabilna_razvrstitev ( Najprej RandomAccessIterator , RandomAccessIterator zadnji ) ;

Tukaj, prvi je iterator, ki kaže na prvi element v obsegu, ki ga je treba razvrstiti, in zadnji je iterator, ki kaže na element za zadnjim elementom v obsegu, ki ga je treba razvrstiti.



The stabilno_razvrščanje() funkcija uporablja nepadajoči vrstni red za razvrščanje vnosov v obsegu [prvi, zadnji], tj. od najmanjšega do največjega elementa. Funkcija privzeto primerja elemente skozi operator manj kot (<).





Primer 1

Razmislite o spodnjem primeru kode, v tej kodi smo ustvarili vektorski seznam in ga inicializiral z nekaterimi vrednostmi. Nato smo uporabili stabilno_razvrščanje() da razvrstite vrednosti danega vektorja v naraščajočem vrstnem redu. Nerazvrščeni in razvrščeni vektorji se natisnejo na konzoli z uporabo zanke na podlagi obsega.

#include

#include

#include

uporaba imenskega prostora std ;



int glavni ( )

{

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

cout << 'Številke pred razvrščanjem: ' ;

za vsakogar ( seznam. začeti ( ) , seznam. konec ( ) , [ ] ( int x ) {

cout << x << ' ' ;

} ) ;

stabilna_razvrstitev ( seznam. začeti ( ) , seznam. konec ( ) ) ;

cout << ' \n Številke po razvrščanju: ' ;

za vsakogar ( seznam. začeti ( ) , seznam. konec ( ) , [ ] ( int x ) {

cout << x << ' ' ;

} ) ;



vrnitev 0 ;

}




Primer 2

V spodnjem primeru smo ustvarili niz celih števil in ga inicializirali z nekaterimi vrednostmi. Nato je privzeto stabilno_razvrščanje() razvrsti elemente v naraščajočem vrstnem redu:

#include

#include

uporaba imenskega prostora std ;

int glavni ( )

{

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

int n = sizeof ( niz ) / sizeof ( niz [ 0 ] ) ;

cout << 'Izvirna matrika je: \n ' ;

za ( int jaz = 0 ; jaz < n ; ++ jaz ) {

cout << niz [ jaz ] << ' ' ;

}

stabilna_razvrstitev ( niz , niz + n ) ;

cout << ' \n Niz po razvrščanju je: \n ' ;

za ( int jaz = 0 ; jaz < n ; ++ jaz ) {

cout << niz [ jaz ] << ' ' ;

}

vrnitev 0 ;

}

Primer 3

The stabilna_razvrstitev sprejme tretji parameter, da določi vrstni red za razvrščanje elementa. V spodnjem primeru smo uporabili večji() funkcijo z stabilno_razvrščanje() za razvrščanje elementov matrike v padajočem vrstnem redu

#include

#include

uporaba imenskega prostora std ;

int glavni ( )

{

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

int n = sizeof ( niz ) / sizeof ( niz [ 0 ] ) ;

cout << 'Izvirni niz: \n ' ;

za ( int jaz = 0 ; jaz < n ; ++ jaz ) {

cout << niz [ jaz ] << ' ' ;

}

stabilna_razvrstitev ( niz , niz + n , večji < int > ( ) ) ;

cout << ' \n Niz po razvrščanju: \n ' ;

za ( int jaz = 0 ; jaz < n ; ++ jaz ) {

cout << niz [ jaz ] << ' ' ;

}

vrnitev 0 ;

}

Spodnja črta

The stabilno_razvrščanje() funkcija v C++ je standardni algoritem knjižnice, ki se uporablja za razvrščanje elementov v vsebniku v nepadajočem vrstnem redu, medtem ko ohranja relativni vrstni red elementov v vsebniku z enakimi vrednostmi. Uporablja se lahko z različnimi vsebniki, kot so polja, vektorji in povezani seznami. Poleg tega je za določitev vrstnega reda za razvrščanje elementov potreben tretji parameter.