Ako používať funkciu stable_sort() v C++

Ako Pouzivat Funkciu Stable Sort V C



V C++ existujú rôzne funkcie na zoradenie prvkov sekvencie v určitom poradí. Podobne ako funkcia triedenia sa aj funkcia stable_sort používa na triedenie prvkov v rozsahu (prvý, posledný). Kľúčový rozdiel medzi nimi je v tom, že stable_sort zachováva pomerné poradie prvkov s rovnakými hodnotami.

V tomto podrobnom návode si ukážeme fungovanie stable_sort() v C++.

Ako používať funkciu stable_sort() v C++

V C++ je stable_sort() je štandardný algoritmus knižnice, ktorý usporiada prvky vo rastúcom poradí a zachováva rovnaké poradie pre ekvivalentné prvky. To znamená, že ak sú dva prvky rovnaké, prvok, ktorý sa objaví v kontajneri pred zoradením ako prvý, sa bude stále zobrazovať ako prvý v zoradenom zozname. Táto funkcia funguje tak, že opakovane rozdeľuje kontajner (polia, vektory, prepojené zoznamy), triedi ich samostatne a potom ich spája, aby sa získal triedený kontajner. Spadá pod hlavičkový súbor.







Všeobecná syntax pre použitie stable_sort() v C++ je:



stable_sort ( Najprv RandomAccessIterator , RandomAccessIterator posledný ) ;

Tu, najprv je iterátor ukazujúci na prvý prvok v rozsahu, ktorý sa má zoradiť, a posledný je iterátor ukazujúci na prvok za posledným prvkom v rozsahu, ktorý sa má zoradiť.



The stable_sort() funkcia používa neklesajúce poradie na zoradenie záznamov v rozsahu [prvý, posledný], t. j. od najmenšieho po najväčší prvok. Funkcia štandardne porovnáva položky cez operátor menej ako (<).





Príklad 1

Zvážte nižšie uvedený príklad kódu, v tomto kóde sme vytvorili vektorový zoznam a inicializoval ho s niektorými hodnotami. Ďalej sme použili stable_sort() na zoradenie hodnôt daného vektora vo vzostupnom poradí. Nezoradené a zoradené vektory sa vytlačia na konzole pomocou slučky založenej na rozsahu.

#include

#include

#include

pomocou menného priestoru std ;



int Hlavná ( )

{

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

cout << 'Čísla pred triedením: ' ;

pre každý ( zoznam. začať ( ) , zoznam. koniec ( ) , [ ] ( int X ) {

cout << X << '' ;

} ) ;

stable_sort ( zoznam. začať ( ) , zoznam. koniec ( ) ) ;

cout << ' \n Čísla po zoradení: ' ;

pre každý ( zoznam. začať ( ) , zoznam. koniec ( ) , [ ] ( int X ) {

cout << X << '' ;

} ) ;



vrátiť 0 ;

}




Príklad 2

V nižšie uvedenom príklade sme vytvorili celočíselné pole a inicializovali ho s niektorými hodnotami. Potom štandardne, stable_sort() triedi prvky vo vzostupnom poradí:

#include

#include

pomocou menného priestoru std ;

int Hlavná ( )

{

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

int n = veľkosť ( pole ) / veľkosť ( pole [ 0 ] ) ;

cout << 'Pôvodné pole je: \n ' ;

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

cout << pole [ i ] << '' ;

}

stable_sort ( pole , pole + n ) ;

cout << ' \n Pole po zoradení je: \n ' ;

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

cout << pole [ i ] << '' ;

}

vrátiť 0 ;

}

Príklad 3

The stable_sort tretí parameter určuje poradie triedenia prvku. V nižšie uvedenom príklade sme použili väčší() funkcia s stable_sort() na zoradenie prvkov poľa v zostupnom poradí

#include

#include

pomocou menného priestoru std ;

int Hlavná ( )

{

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

int n = veľkosť ( pole ) / veľkosť ( pole [ 0 ] ) ;

cout << 'Pôvodné pole: \n ' ;

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

cout << pole [ i ] << '' ;

}

stable_sort ( pole , pole + n , väčší < int > ( ) ) ;

cout << ' \n Pole po zoradení: \n ' ;

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

cout << pole [ i ] << '' ;

}

vrátiť 0 ;

}

Spodná čiara

The stable_sort() funkcia v C++ je štandardný knižničný algoritmus používaný na triedenie prvkov v kontajneri v neklesajúcom poradí pri zachovaní relatívneho poradia prvkov v kontajneri s rovnakými hodnotami. Dá sa použiť s rôznymi kontajnermi, ako sú polia, vektory a prepojené zoznamy. Okrem toho je potrebný tretí parameter na určenie poradia triedenia prvkov.