В этом подробном руководстве мы покажем работу стабильная_сортировка() в С++.
Как использовать функцию 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++ — это стандартный библиотечный алгоритм, используемый для сортировки элементов в контейнере в неубывающем порядке при сохранении относительного порядка элементов в контейнере с одинаковыми значениями. Его можно использовать с различными контейнерами, такими как массивы, векторы и связанные списки. Кроме того, требуется третий параметр, чтобы указать порядок сортировки элементов.