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
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.