Как использовать функцию stable_sort() в C++

Kak Ispol Zovat Funkciu Stable Sort V C



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

В этом подробном руководстве мы покажем работу стабильная_сортировка() в С++.

Как использовать функцию stable_sort() в C++

В С++, стабильная_сортировка() представляет собой стандартный библиотечный алгоритм, который упорядочивает элементы в возрастающем порядке и сохраняет тот же порядок для эквивалентных элементов. Это означает, что если два элемента равны, элемент, который появляется первым в контейнере перед сортировкой, все равно будет первым в отсортированном списке. Эта функция работает, многократно разделяя контейнер (массивы, векторы, связанные списки), сортируя их по отдельности, а затем объединяя их для получения отсортированного контейнера. Он попадает под <алгоритм> заголовочный файл.







Общий синтаксис использования стабильная_сортировка() в С++ это:



стабильная_сортировка ( RandomAccessIterator сначала , RandomAccessIterator последний ) ;

Здесь первый это итератор, указывающий на первый элемент в диапазоне, который нужно отсортировать, и последний это итератор, указывающий на элемент после последнего элемента в диапазоне для сортировки.



стабильная_сортировка() Функция использует неубывающий порядок для сортировки записей в диапазоне [first, last], т. е. от наименьшего к наибольшему элементу. Функция по умолчанию сравнивает элементы через оператор 'меньше' (<).





Пример 1

Рассмотрим приведенный ниже пример кода, в этом коде мы создали векторный список и инициализировал его некоторыми значениями. Далее мы использовали стабильная_сортировка() для сортировки значений данного вектора в порядке возрастания. Несортированные и отсортированные векторы выводятся на консоль с использованием цикла на основе диапазона.

#include <иопоток>

#include <вектор>

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

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



инт основной ( )

{

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

cout << «Числа до сортировки:» ;

для каждого ( список. начинать ( ) , список. конец ( ) , [ ] ( инт Икс ) {

cout << Икс << ' ' ;

} ) ;

стабильная_сортировка ( список. начинать ( ) , список. конец ( ) ) ;

cout << ' \n Цифры после сортировки: ' ;

для каждого ( список. начинать ( ) , список. конец ( ) , [ ] ( инт Икс ) {

cout << Икс << ' ' ;

} ) ;



возвращаться 0 ;

}




Пример 2

В приведенном ниже примере мы создали массив целых чисел и инициализировали его некоторыми значениями. Затем по умолчанию стабильная_сортировка() сортирует элементы в порядке возрастания:

#include <иопоток>

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

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

инт основной ( )

{

инт множество [ ] '=' { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;

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

cout << 'Исходный массив: \n ' ;

для ( инт я '=' 0 ; я < н ; ++ я ) {

cout << множество [ я ] << ' ' ;

}

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

cout << ' \n Массив после сортировки: \n ' ;

для ( инт я '=' 0 ; я < н ; ++ я ) {

cout << множество [ я ] << ' ' ;

}

возвращаться 0 ;

}

Пример 3

стабильная_сортировка принимает третий параметр, чтобы указать порядок сортировки элемента. В приведенном ниже примере мы использовали больше() функция с стабильная_сортировка() отсортировать элементы массива в порядке убывания

#include <иопоток>

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

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

инт основной ( )

{

инт множество [ ] '=' { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;

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

cout << 'Исходный массив: \n ' ;

для ( инт я '=' 0 ; я < н ; ++ я ) {

cout << множество [ я ] << ' ' ;

}

стабильная_сортировка ( множество , множество + н , больший < инт > ( ) ) ;

cout << ' \n Массив после сортировки: \n ' ;

для ( инт я '=' 0 ; я < н ; ++ я ) {

cout << множество [ я ] << ' ' ;

}

возвращаться 0 ;

}

Нижняя граница

стабильная_сортировка() Функция в C++ — это стандартный библиотечный алгоритм, используемый для сортировки элементов в контейнере в неубывающем порядке при сохранении относительного порядка элементов в контейнере с одинаковыми значениями. Его можно использовать с различными контейнерами, такими как массивы, векторы и связанные списки. Кроме того, требуется третий параметр, чтобы указать порядок сортировки элементов.