Wprowadzenie do sortowania w C ++

Posiadanie kolekcji elementów do zamówienia, sortowanie pomaga w uporządkowaniu elementów w rekordzie na podstawie relacji porządkowania. Rozważmy rekord pliku, który zawiera wiele informacji, aby uzyskać dostęp do listy z rekordu, konieczne jest posiadanie pola klucza, aby wskazać bieżącą lokalizację elementu. Rozważmy na przykład listę nazw w bazie danych, można ją posortować alfabetycznie. Sortowanie odegrało ważną rolę w dziedzinie komputerów i technologii. Zobaczmy więcej w tym artykule.

Co to jest sortowanie w C ++?

Sortowanie to podstawowa koncepcja stosowana przez programistę lub badacza do sortowania wymaganych danych wejściowych. Kolejność złożoności jest określona przez 0 (N * log (N)). Sortowanie danych wejściowych ułatwia rozwiązywanie wielu problemów, takich jak wyszukiwanie, element maksymalny i minimalny. Chociaż sortowanie porządkuje dane w sekwencji, bardzo ważna jest wydajność procesu, która opiera się na dwóch kryteriach: - Czas i pamięć wymagana do przeprowadzenia sortowania na danych. Czas mierzy się przez zliczenie porównań użytych kluczy. Istnieje wiele algorytmów do sortowania. Ogólnie rzecz biorąc, sortowanie w C ++ można podzielić na dwa typy:

  1. Sortowanie wewnętrzne
  2. Sortowanie zewnętrzne

Składnia i przykład

Składnia:

C ++ używa wbudowanej funkcji sort () dla swoich algorytmów, aby sortować kontenery takie jak wektory, tablice.

Sortuj (tablica, tablica + rozmiar);

Przykłady:

#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)
#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)
#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)

Wynik:

Jak to działa?

Na początek weźmiemy Szybkie sortowanie, które jest uważane za ważną metodę wśród różnych typów sortowania. Podstawowe sortowanie tablicy ma podejście Quicksort. Istnieją różne sposoby implementacji sortowania, cel każdej z tych technik jest taki sam, jak porównanie dwóch elementów i zamiana ich na zmienną tymczasową. W tym artykule omówimy najważniejsze sortowanie zastosowane do wdrożenia. Oto:

  1. Sortowanie bąbelkowe
  2. Sortowanie przez wstawianie
  3. Szybkie sortowanie
  4. Sortuj wybór

Istnieje sortowanie korespondencji seryjnej, sortowanie radix, sortowanie taśm, które możemy omówić później. Najpierw przejdziemy do sortowania Bubble.

1. Sortowanie bąbelkowe

Sortowanie bąbelkowe jest jedną z najprostszych metod sortowania, które możemy wykorzystać w aplikacjach. W tej technice kolejne zamiany dokonywane są poprzez sortowane rekordy. Na każdym kroku porównuje klucz z danymi i wymienia elementy, jeśli nie w pożądanej kolejności. Sortowanie odbywa się za pomocą sąsiednich elementów, gdy tylko jeden element zostanie umieszczony w posortowanym miejscu po zamianie.

Przykład: Rozważmy nieposortowaną tablicę A () = (6, 2, 4, 7, 1)

62)471
A (0)A (1)A (2)A (3)A (4)

Krok 1: Porównując A (0)> A (1), jeśli warunek jest prawdziwy zamień element (6> 2) true, umieść 2 w A (0). Podobnie wszystkie kroki wykonują się tak samo, dopóki tablica nie zostanie posortowana.

Teraz tablica to A () = (2, 6, 4, 7, 1)

Krok 2: 6 porównuje się z 4. Ponieważ 6 jest większe niż 4. Dlatego 6 i 4 są zamieniane.

Teraz tablica to A () = (2, 4, 6, 7, 1)

Krok 3: Element 6 jest porównywany z 7. Ponieważ 6 <2 i elementy są w porządku rosnącym, elementy nie są zamieniane.

Posortowana tablica to A () = (2, 4, 6, 7, 1).

Kontynuuj proces, aż tablica zostanie posortowana.

2. Wstawianie Sortuj

W tej technice zaczynamy od drugiego elementu danych, zakładając, że pierwszy element jest już posortowany i porównuje się go z drugim elementem, a krok jest kontynuowany z drugim kolejnym elementem. W tablicy N elementów konieczne jest posiadanie przepustów N-1, aby mieć posortowany element.

Rozważ tablicę A () = (8, 3, 6, 1)

83)61

Krok 1: Pierwszy element szuka największego elementu w tablicy do zamiany. Jeśli jest większy, pozostaje taki sam i przechodzi do drugiego elementu, tutaj 8 jest większy niż wszystkie, nie następuje zamiana.

83)61

Krok 2: Zamiana z drugim elementem

3)861

Krok 3: Zamiana z trzecim elementem

3)681

Krok 4: Zamiana z czwartym elementem

13)68

3. Szybkie sortowanie

Ta technika działa zgodnie z algorytmem dzielenia i podbijania i jest uważana za bardzo wydajną, a także szybszą w przypadku dużych tablic. Są one podzielone na trzy podsekcje: lewą, prawą i środkową. Środkowy element ma jedną wartość i jest nazywany osią obrotu. Mechanizm działa w ten sposób, element w lewym segmencie nie powinien mieć klucza większego niż środkowy element, a żaden element po prawej stronie nie ma klucza mniejszego niż klucz środkowego elementu. Teraz zacznijmy od ilustracji procesu sortowania. Quicksort używa rekurencyjnej koncepcji podczas sortowania części. Tablica jest podzielona na podsekcję, ponownie lewy i prawy segment są podzielone przez podbój. Tutaj w tym przykładzie, biorąc pod uwagę, że ostatni element ma oś obrotu, a pierwszy element przyjmuje się za niski. Rozważ element tablicy

492211165630

Biorąc skrajnie prawy element, element pivot = 30

162211305649

Element większy niż oś jest umieszczony w lewo, mniejszy w prawo.

1622115649

Wskaźnik jest umieszczony na osi obrotu i jest podzielony wokół osi obrotu.

1122165649

Podczęści są sortowane indywidualnie.

111622304956

Wreszcie mamy sortowaną macierz.

4. Wybór Sortuj

Ta technika jest również nazywana sortowaniem giełdowym, które wykonuje wyszukiwanie i sortowanie w dwóch operacjach. Implementacja wymaga prostego sortowania selekcji, jak zdefiniowano poniżej. W tym przypadku wymagane jest zidentyfikowanie najmniejszego elementu obecnego w tablicy, a ten element jest sortowany na pierwszej pozycji i, następnie identyfikowany jest drugi najmniejszy element i jest on sortowany na drugiej pozycji. Sortowanie wyboru kończy swoją pętlę, gdy nieposortowana podsekcja staje się pusta. Złożoność czasowa jest podawana jako O (n 2 ).

Rozważ następującą tablicę:

6326132312

1. Znajdź najmniejszy element i umieść go na początku, a zostanie on zamieniony pozycją.

1226132363

2. Zidentyfikowany jest drugi element a (1) z minimalnym elementem i umieść go w drugiej pozycji, podobnie przejście jest kontynuowane.

1213262364

Ostateczne posortowane wyjście

1213232664

Wniosek

Podsumowując, w tym artykule skupiono się na koncepcjach sortowania i ich mechanizmie działania. Wszystkie te techniki sortowania wykorzystują koncepcje przetwarzania równoległego. Sortowanie stanowi podstawowy element składowy algorytmów strukturalnych do rozwiązywania problemów danych w świecie rzeczywistym poprzez sortowanie zestawu wartości zgodnie z wymaganiami.

Polecane artykuły

Jest to przewodnik po sortowaniu w C ++. Tutaj omawiamy wprowadzenie i składnię wraz z przykładami oraz jak to działa. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Sortowanie w Tableau
  2. Iterator w C ++
  3. Funkcje tablic w C
  4. Sortuj sterty w C.
  5. Jak odbywa się sortowanie w PHP?
  6. Sortuj sterty w Pythonie
  7. Iterator w Javie
  8. 11 najważniejszych funkcji i zalet C ++
  9. Iterator w Pythonie | Korzyści i przykłady Pythona