Metody sortowania łańcucha i znaków łańcucha w C++
Dostępne są różne strategie sortowania do aranżowania łańcucha w określonym zamówieniu. Wśród nich są:
Bańka
Jednym z najprostszych algorytmów sortowania w C ++ jest sort. Ciągi są sortowane przy użyciu tego podejścia, porównując pobliskie struny lub znaki w ciągu. Następnie zamień je w dostarczoną kolejność, która może być alfabetycznie ułożona w C++.
Sortowanie przez wstawianie
Algorytm sortowania wstawiania wybiera znaki pojedynczo i wprowadza je w odpowiednią pozycję. Każda iteracja metody sortowania wstawienia pobiera znak z podanej listy i wprowadza ją do posortowanego substringu. Metoda przyjmuje znak i wkłada ją we właściwej pozycji w zależności od wartości ASCII podczas sortowania alfabetycznego.
Standardowa funkcja biblioteki
Importując plik nagłówka do naszego kodu, możemy użyć metody sortowania z biblioteki szablonów standardowych C ++. W porównaniu do tworzenia kodu, użycie tej wbudowanej metody jest łatwiejsze i szybsze.
Możemy również użyć std :: sort () w c++. STD :: sort () to funkcja standardowej biblioteki szablonów (STL) w c++. Metoda akceptuje początek i końcowy iterator, a domyślnie jest ułożony w kolejności rosnącej. Przekazując operację komparatora, która zwraca logikę, metodę można również zastosować do określonego sortowania.
Przykład 1
Funkcja sortowania jest jednym z najłatwiejszych sposobów sortowania znaku łańcucha. Jedyne wymagane jest po prostu import standardowej biblioteki C++. Kod zaczyna się od importowania standardowego „STDC++.Biblioteka H ”w sekcji nagłówka. Biblioteka zawiera wszystkie standardowe pliki biblioteki. „Przestrzeń nazw nazw” jest również zawarta w kodzie.
Po sekcji nagłówka utworzyliśmy funkcję pustki jako „MyString” i przekazaliśmy ciąg referencyjny „SOTTRTR” w konstruktorze. Następnie wywołaliśmy metodę sort () w funkcji „MyString”. Metoda sort () ma iterator początkowy i końcowy iterator, które sortują znak strunowy w kolejności rosnącej. Posortowany ciąg zostanie wydrukowany przez instrukcję Cout.
Teraz mamy główną funkcję, w której zadeklarowaliśmy ciąg „strval” i zainicjowaliśmy. Ciąg „strval” jest przekazywany w funkcji „MyString” w celu sortowania podanego ciągu.
#włączać
za pomocą przestrzeni nazw Std;
Void MyString (String & Sortstr)
sort (sortstr.początek (), sortstr.koniec());
Cout << SortStr;
int main ()
string strval = "programingLanguage";
MyString (strval);
Cout << "\n";
powrót 0;
Metoda sort () posortowała znaki łańcuchowe w kolejności rosnącej. Wynik wznoszących się znaków ciągów kolejności jest pokazany na obrazie.
Przykład2
Możemy również sortować znaki ciągu lub ciągów za pomocą metody STD :: Sort, która jest zawarta w wbudowanej bibliotece C ++ . Poniższy kod zawiera dwie biblioteki, „iostream” i „algorytm” w sekcji nagłówka. Za pośrednictwem biblioteki „algorytm” możemy uzyskać dostęp do metody STD :: SORT.
Po sekcji nagłówka mamy główną funkcję, w której zdefiniowaliśmy tablicę string. Następnie musimy zdefiniować rozmiar tablicy równy „5” w „Arrsize” liczb całkowitych typu danych. Teraz wykorzystując metodę STD :: sort. przyjmuje tablicę „kolorów” i rozmiar tablicy jako argument do sortowania łańcucha.
W następnym wierszu kodu znajduje się instrukcja dla pętli, która iteruje pętlę, aż do rozmiaru tablicy „5” dla tablicy ciągu. Instrukcja Cout wydrukuje posortowaną tablicę w kolejności rosnącej.
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()
String Colours [] = „Pink”, „Gray”, „żółty”, „niebieski”, „czerwony”;
int arrsize = 5;
std :: sort (kolory, kolory + arrsize);
for (int a = 0; a < 5; a++)
Cout<
powrót 0;
Wyjście ze standardowego ciągu funkcji biblioteki pokazanej poniżej jest sortowane w kolejności alfabetycznej.
Przykład 3
Skuteczna strategia będzie najpierw zauważyć, że może być tylko 26 odrębnych znaków. Tak więc, w macierzy Haszed, możemy przechowywać liczbę wystąpień każdej postaci od „A do„ Z.„Po prostu przeszukamy tablicę Hashed i wyprowadzimy znaki z„ A ”do„ Z ”, gdy pojawiają się kilka razy w ciągu wejściowego. Tak więc, aby zaimplementować kod, zaimportowaliśmy standardową bibliotekę „STDC++.h ”, który pomaga nam sortować określoną tablicę.
Teraz zadeklarowaliśmy zmienną „znaki” za pomocą słowa kluczowego „Const” i zainicjowaliśmy go z wartością „26”. Następnie mamy funkcję o nazwie „SortStr”, która przyjmuje odniesienie do sortowanego ciągu jako „strx”. W funkcji utworzyliśmy tablicę skrótu jako „hrabia”. Początkowo początkowa liczba znaków jest inicjowana zero. Po inicjalizacji tablicy skrótu mamy instrukcję dla pętli, która przemierza ciąg i zwiększa liczbę znaków. Pierwszy indeks Hashed Array reprezentuje postać „A”; drugi reprezentuje „B”, itp.
Tak więc, dla pozycji postaci w liczbie tablicy skrótu, użyliśmy strx [i]-„a”. Mamy zagnieżdżoną pętlę do przemierzania i porównywania postaci za pomocą sznurka. Jeśli zmienna „j” w pętli jest większa niż znak liczby w zmiennej „i”. Tablica skrótu strunowego przemierzy się i wydrukuje znaki. W ostatnich wierszach mamy główną funkcję, w której zadeklarowaliśmy i zainicjowaliśmy ciąg funkcji „MyString”.
#włączać
za pomocą przestrzeni nazw Std;
const int znak = 26;
void sortstr (String & Strx)
int CountCar [znaków] = 0;
dla (int i = 0; iHrabiego [strx [i]-„a '] ++;
dla (int i = 0; ifor (int j = 0; j Cout << (char)('a'+i);
int main ()
String MyString = „Welcomefriends”;
Sortstr (MyString);
Cout <<"\n";
powrót 0;
Wynik posortowanego znaku łańcucha jest wyświetlany na następującym ekranie terminalu.
Przykład 4
W programowaniu C ++ musimy poprosić użytkownika o podanie kilku nazwisk w celu ustalenia ciągów (nazw) alfabetycznie (ciągami). Następnie, jak wskazano w poniższym kodzie, sortuj te ciągi wejściowe lub nazwy alfabetycznie. Mamy algorytm sortowania bańki dla tej ilustracji. Kod ma główną funkcję, w której zdefiniowaliśmy tablicę znaków „allname” wielkości tablicy „5” i wartość znaków „10”. Mamy również kolejne tablicę „nazwa” ciągu typu danych i ustawiamy wartość znaku na „10”.
Następnie zdefiniowaliśmy zmienną typu liczb całkowitych „x” i „y”. Tablica znaków będzie wejściem użytkownika w tym kodzie. Użytkownik wprowadzi pięciokarabski ciąg nazwisk. Teraz mamy zagnieżdżone instrukcje pętli, aw bloku zagnieżdżonej pętli mamy warunek, który wykorzystuje funkcję „strcmp” do porównania dwóch ciągów. Po porównaniu ciągów wywołaliśmy funkcję „Strcpy” do zamiany nazw ciągu. W rezultacie mamy posortowaną alfabetyczną kolejność nazw ciągu.
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()
Char AllName [5] [10], nazwa [10];
int x, y;
Cout<<"Enter Names: ";
for (x = 0; x> allName [x];
dla (x = 1; x<5; x++)
dla (y = 1; y0)
strcpy (nazwa, allname [y-1]);
strcpy (allname [y-1], allname [y]);
strcpy (allname [y], nazwa);
Cout<<"\nAlphabetical order of Names :\n";
dla (x = 0; x<5; x++)
Cout<Cout< powrót 0;
Na początku musisz wprowadzić pięć losowych nazw; Następnie sortuje nazwy ciągów w kolejności alfabetycznej. Powstałe sortowane nazwy ciągów w kolejności alfabetycznej są wyświetlane poniżej.
Wniosek
Dochodzimy do wniosku, że znak sortowania łańcucha w C ++ jest realizowany za pomocą różnych algorytmów sortowania. Tutaj badamy, jak sortować ciąg w C ++ z przykładami sortowania i jak sortować ciąg za pomocą kilku algorytmów sortowania. Wszystkie implementacje kodów są wykonywane w Ubuntu 20.04 za pomocą kompilatora G ++. Mamy nadzieję, że ten artykuł pomógł ci lepiej zrozumieć podejście do budowania niestandardowej funkcji sortowania, aby sortować nieo uporządkowany ciąg znaków i jej implementację w C++.