Как да използвате функцията stable_sort() в C++

Kak Da Izpolzvate Funkciata Stable Sort V C



В C++ има различни функции за сортиране на елементите от последователността в определен ред. Подобно на функцията за сортиране, stable_sort се използва за сортиране на елементите в диапазона (първи, последен). Основната разлика между тях е, че стабилно_сортиране поддържа относителния ред на елементите с еднакви стойности.

В този подробен урок ще покажем работата на stable_sort() в C++.

Как да използвате функцията stable_sort() в C++

В C++, stable_sort() е стандартен библиотечен алгоритъм, който подрежда елементите във възходящ ред и запазва същия ред за еквивалентните елементи. Това означава, че ако два елемента са еднакви, елементът, който се появява първи в контейнера преди сортирането, пак ще се показва първи в сортирания списък. Тази функция работи, като многократно разделя контейнера (масиви, вектори, свързани списъци), сортира ги поотделно и след това ги обединява, за да получи сортирания контейнер. Той идва под <алгоритъм> заглавен файл.







Общият синтаксис за използване на stable_sort() в C++ е:



стабилно_сортиране ( Първо RandomAccessIterator , Последен RandomAccessIterator ) ;

Ето, първи е итераторът, сочещ към първия елемент в диапазона, който трябва да бъде сортиран, и последно е итераторът, сочещ към елемента след последния елемент в диапазона, който трябва да бъде сортиран.



The stable_sort() функцията използва ненамаляващ ред, за да сортира записите в диапазона [първи, последен], т.е. от най-малкия до най-големия елемент. Функцията по подразбиране сравнява елементите чрез оператор по-малко от (<).





Пример 1

Разгледайте примерния код по-долу, в този код създадохме векторен списък и го инициализира с някои стойности. След това използвахме stable_sort() за сортиране на стойностите на дадения вектор във възходящ ред. Несортираните и сортираните вектори се отпечатват на конзолата с помощта на цикъл, базиран на диапазон.

#include

#include <вектор>

#include <алгоритъм>

използване на пространство от имена std ;



вътр основен ( )

{

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

cout << 'Числа преди сортиране: ' ;

за всеки ( списък. започвам ( ) , списък. край ( ) , [ ] ( вътр х ) {

cout << х << ' ' ;

} ) ;

стабилно_сортиране ( списък. започвам ( ) , списък. край ( ) ) ;

cout << ' Числа след сортиране: ' ;

за всеки ( списък. започвам ( ) , списък. край ( ) , [ ] ( вътр х ) {

cout << х << ' ' ;

} ) ;



връщане 0 ;

}




Пример 2

В дадения по-долу пример създадохме масив с цели числа и го инициализирахме с някои стойности. След това по подразбиране, stable_sort() сортира елементите във възходящ ред:

#include

#include <алгоритъм>

използване на пространство от имена std ;

вътр основен ( )

{

вътр масив [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;

вътр н = размер на ( масив ) / размер на ( масив [ 0 ] ) ;

cout << „Оригиналният масив е: ' ;

за ( вътр аз = 0 ; аз < н ; ++ аз ) {

cout << масив [ аз ] << ' ' ;

}

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

cout << ' Масивът след сортиране е: ' ;

за ( вътр аз = 0 ; аз < н ; ++ аз ) {

cout << масив [ аз ] << ' ' ;

}

връщане 0 ;

}

Пример 3

The стабилно_сортиране взема третия параметър, за да посочи реда за сортиране на елемента. В примера по-долу сме използвали по-голяма() функция с stable_sort() за сортиране на елементите на масива в низходящ ред

#include

#include <алгоритъм>

използване на пространство от имена std ;

вътр основен ( )

{

вътр масив [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;

вътр н = размер на ( масив ) / размер на ( масив [ 0 ] ) ;

cout << „Оригинален масив: ' ;

за ( вътр аз = 0 ; аз < н ; ++ аз ) {

cout << масив [ аз ] << ' ' ;

}

стабилно_сортиране ( масив , масив + н , по-голяма < вътр > ( ) ) ;

cout << ' Масив след сортиране: ' ;

за ( вътр аз = 0 ; аз < н ; ++ аз ) {

cout << масив [ аз ] << ' ' ;

}

връщане 0 ;

}

Долен ред

The stable_sort() функция в C++ е стандартен библиотечен алгоритъм, използван за сортиране на елементи в контейнер в ненамаляващ ред, като същевременно се поддържа относителният ред на елементите в контейнер с еднакви стойности. Може да се използва с различни контейнери като масиви, вектори и свързани списъци. Освен това е необходим трети параметър за указване на реда за сортиране на елементите.