Jak korzystać z funkcji stable_sort() w C++

Jak Korzystac Z Funkcji Stable Sort W C



W C++ istnieją różne funkcje do sortowania elementów sekwencji w określonej kolejności. Podobnie jak funkcja sortowania, stable_sort służy do sortowania elementów w zakresie (pierwszy, ostatni). Kluczowa różnica między nimi polega na tym, że sortowanie_stabilne zachowuje względną kolejność elementów o równych wartościach.

W tym szczegółowym samouczku pokażemy działanie sortowanie_stabilne() w C++.

Jak korzystać z funkcji stable_sort() w C++

W C++ tzw sortowanie_stabilne() jest standardowym algorytmem bibliotecznym, który porządkuje elementy w rosnącej kolejności i zachowuje tę samą kolejność dla równoważnych elementów. Oznacza to, że jeśli dwa elementy są równe, element, który pojawi się jako pierwszy w kontenerze przed sortowaniem, nadal pojawi się jako pierwszy na posortowanej liście. Ta funkcja działa poprzez wielokrotne dzielenie kontenera (tablice, wektory, połączone listy), sortowanie ich osobno, a następnie łączenie ich w celu uzyskania posortowanego kontenera. Podchodzi pod plik nagłówkowy.







Ogólna składnia używania sortowanie_stabilne() w C++ jest:



sortowanie_stabilne ( Najpierw RandomAccessIterator , RandomAccessIterator ostatni ) ;

Tutaj Pierwszy jest iteratorem wskazującym na pierwszy element w zakresie do posortowania, a ostatni jest iteratorem wskazującym element po ostatnim elemencie w zakresie do posortowania.



The sortowanie_stabilne() funkcja używa porządku niemalejącego do sortowania wpisów w zakresie [pierwszy, ostatni], czyli od najmniejszego do największego elementu. Funkcja domyślnie porównuje elementy poprzez operator mniejszy niż (<).





Przykład 1

Rozważ poniższy przykładowy kod, w tym kodzie stworzyliśmy plik lista wektorów i zainicjowałem go pewnymi wartościami. Następnie wykorzystaliśmy tzw sortowanie_stabilne() aby posortować wartości danego wektora w porządku rosnącym. Nieposortowane i posortowane wektory są drukowane na konsoli przy użyciu pętli opartej na zakresie.

#include

#uwzględnij

#include

przy użyciu przestrzeni nazw std ;



int główny ( )

{

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

cout << „Liczby przed sortowaniem:” ;

dla każdego ( lista. zaczynać ( ) , lista. koniec ( ) , [ ] ( int X ) {

cout << X << ' ' ;

} ) ;

sortowanie_stabilne ( lista. zaczynać ( ) , lista. koniec ( ) ) ;

cout << ' \N Liczby po sortowaniu: ' ;

dla każdego ( lista. zaczynać ( ) , lista. koniec ( ) , [ ] ( int X ) {

cout << X << ' ' ;

} ) ;



powrót 0 ;

}




Przykład 2

W poniższym przykładzie stworzyliśmy tablicę liczb całkowitych i zainicjowaliśmy ją pewnymi wartościami. Następnie domyślnie plik sortowanie_stabilne() sortuje elementy w porządku rosnącym:

#include

#include

przy użyciu przestrzeni nazw std ;

int główny ( )

{

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

int N = rozmiar ( szyk ) / rozmiar ( szyk [ 0 ] ) ;

cout << „Oryginalna tablica to: \N ' ;

Do ( int I = 0 ; I < N ; ++ I ) {

cout << szyk [ I ] << ' ' ;

}

sortowanie_stabilne ( szyk , szyk + N ) ;

cout << ' \N Tablica po posortowaniu to: \N ' ;

Do ( int I = 0 ; I < N ; ++ I ) {

cout << szyk [ I ] << ' ' ;

}

powrót 0 ;

}

Przykład 3

The sortowanie_stabilne przyjmuje trzeci parametr, aby określić kolejność sortowania elementu. W poniższym przykładzie użyliśmy większy() funkcja z sortowanie_stabilne() aby posortować elementy tablicy w kolejności malejącej

#include

#include

przy użyciu przestrzeni nazw std ;

int główny ( )

{

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

int N = rozmiar ( szyk ) / rozmiar ( szyk [ 0 ] ) ;

cout << „Oryginalna tablica: \N ' ;

Do ( int I = 0 ; I < N ; ++ I ) {

cout << szyk [ I ] << ' ' ;

}

sortowanie_stabilne ( szyk , szyk + N , większy < int > ( ) ) ;

cout << ' \N Tablica po sortowaniu: \N ' ;

Do ( int I = 0 ; I < N ; ++ I ) {

cout << szyk [ I ] << ' ' ;

}

powrót 0 ;

}

Dolna linia

The sortowanie_stabilne() function w C++ to standardowy algorytm biblioteczny używany do sortowania elementów w kontenerze w porządku niemalejącym przy jednoczesnym zachowaniu względnej kolejności elementów w kontenerze o tych samych wartościach. Może być używany z różnymi kontenerami, takimi jak tablice, wektory i połączone listy. Dodatkowo trzeci parametr określa kolejność sortowania elementów.