Како користити функцију стабле_сорт() у Ц++

Kako Koristiti Funkciju Stable Sort U C



У Ц++ постоје различите функције за сортирање елемената низа одређеним редоследом. Слично функцији сортирања, стабле_сорт се користи за сортирање елемената у опсегу (први, последњи). Кључна разлика између њих је у томе што стабле_сорт одржава релативни поредак елемената са једнаким вредностима.

У овом детаљном туторијалу показаћемо рад стабле_сорт() у Ц++.

Како користити функцију стабле_сорт() у Ц++

У Ц++, стабле_сорт() је стандардни алгоритам библиотеке који распоређује елементе у растућем редоследу и задржава исти ред за еквивалентне елементе. То значи да ако су два елемента једнака, елемент који се први појави у контејнеру пре сортирања ће се и даље појавити први на сортираној листи. Ова функција ради тако што више пута дели контејнер (низови, вектори, повезане листе), сортира их одвојено, а затим их спаја да би се добио сортирани контејнер. Долази под <алгоритам> датотека заглавља.







Општа синтакса за коришћење стабле_сорт() у Ц++ је:



стабле_сорт ( Прво РандомАццессИтератор , РандомАццессИтератор ласт ) ;

Ево, први је итератор који показује на први елемент у опсегу који треба сортирати, и последњи је итератор који показује на елемент после последњег елемента у опсегу који треба сортирати.



Тхе стабле_сорт() функција користи неопадајући ред да сортира уносе у опсегу [први, последњи], тј. од најмањег до највећег елемента. Функција подразумевано упоређује ставке кроз оператор мање од (<).





Пример 1

Размотрите доњи пример кода, у овом коду смо креирали векторска листа и иницијализовао га неким вредностима. Затим смо користили стабле_сорт() да сортира вредности датог вектора у растућем редоследу. Несортирани и сортирани вектори се штампају на конзоли помоћу петље засноване на опсегу.

#инцлуде <иостреам>

#инцлуде <вектор>

#инцлуде <алгоритам>

користећи простор имена стд ;



инт главни ( )

{

вектор < инт > листа = { 5 , 2 , 25 , 4 , 9 , 33 , 38 , 26 } ;

цоут << 'Бројеви пре сортирања: ' ;

за сваки ( листа. започети ( ) , листа. крај ( ) , [ ] ( инт Икс ) {

цоут << Икс << ' ' ;

} ) ;

стабле_сорт ( листа. започети ( ) , листа. крај ( ) ) ;

цоут << ' Бројеви након сортирања: ' ;

за сваки ( листа. започети ( ) , листа. крај ( ) , [ ] ( инт Икс ) {

цоут << Икс << ' ' ;

} ) ;



повратак 0 ;

}




Пример 2

У доле наведеном примеру, креирали смо целобројни низ и иницијализовали га неким вредностима. Затим подразумевано, тхе стабле_сорт() сортира елементе у растућем редоследу:

#инцлуде <иостреам>

#инцлуде <алгоритам>

користећи простор имена стд ;

инт главни ( )

{

инт низ [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;

инт н = величина ( низ ) / величина ( низ [ 0 ] ) ;

цоут << „Оригинални низ је: ' ;

за ( инт и = 0 ; и < н ; ++ и ) {

цоут << низ [ и ] << ' ' ;

}

стабле_сорт ( низ , низ + н ) ;

цоут << ' Низ након сортирања је: ' ;

за ( инт и = 0 ; и < н ; ++ и ) {

цоут << низ [ и ] << ' ' ;

}

повратак 0 ;

}

Пример 3

Тхе стабле_сорт узима трећи параметар да одреди редослед сортирања елемента. У доњем примеру користили смо већи() функција са стабле_сорт() да сортира елементе низа у опадајућем редоследу

#инцлуде <иостреам>

#инцлуде <алгоритам>

користећи простор имена стд ;

инт главни ( )

{

инт низ [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;

инт н = величина ( низ ) / величина ( низ [ 0 ] ) ;

цоут << „Оригинални низ: ' ;

за ( инт и = 0 ; и < н ; ++ и ) {

цоут << низ [ и ] << ' ' ;

}

стабле_сорт ( низ , низ + н , веће < инт > ( ) ) ;

цоут << ' Низ након сортирања: ' ;

за ( инт и = 0 ; и < н ; ++ и ) {

цоут << низ [ и ] << ' ' ;

}

повратак 0 ;

}

Суштина

Тхе стабле_сорт() функција у Ц++ је стандардни алгоритам библиотеке који се користи за сортирање елемената у контејнеру у неопадајућем редоследу уз одржавање релативног редоследа елемената у контејнеру са истим вредностима. Може се користити са различитим контејнерима као што су низови, вектори и повезане листе. Поред тога, потребан је трећи параметар да би се одредио редослед за сортирање елемената.