Szybkie sortowanie w C ++

Szybkie sortowanie w C ++

Umieszczenie rzeczy w sekwencji jest zadaniem, które wykonujemy w życiu codziennym, niezależnie od tego, czy jest ono ułożone w kolejność rosnącą, czy zejście. Proces układania rzeczy we właściwej sekwencji nazywa się sortowanie. Wstęp rośnie, a zejście jest zmniejszające. W programowaniu wykonujemy również sortowanie za pomocą różnych algorytmów. Ale jeden algorytm zapewnia najszybsze sortowanie, które jest „szybkie”. Ten algorytm sortowania sortuje tablicę szybciej niż inne algorytmy. Działa na zasadzie podziału i podbojów, najpierw ustawia punkt obrotu i dzieli tablicę na dwa podwycięzie. Następnie ustaw obrót dla pod-pod-u-podsumowania, a proces trwa, aż osiągniemy koniec, a wymagana tablica zostanie sortowana. W tym artykule wyjaśniono dogłębne działanie szybkiego rodzaju w C ++ z praktycznym przykładem kodowania w kolejności rosnącej.

Jak wybrać obrotek

Przed przejściem do dalszych szczegółów ważne jest, aby dowiedzieć się, w jaki sposób możemy wybrać obrotowy algorytm szybkiego sortowania.

    • Pierwszy element
    • Ostatni element
    • Element mediany
    • Element losowy

Nie ma ograniczeń dla wyboru obrotu. Przeważnie ustawiamy ostatnią wartość tablicy jako punkt obrotu.

Algorytmy:

Szybkie sortowanie odbywa się za pomocą dwóch algorytmów - jeden to rozdzielenie tablicy zgodnie z punktem obrotowym, a drugi służy do sortowania tablicy.

Do partycjonowania:

    • Weź dwie zmienne jako najniższe i najwyższe.
    • Przechowuj indeks początkowy tablicy w najniższym poziomie, a następnie przechowuj ostatni indeks w najwyższym.
    • Zdefiniuj inną zmienną i zainicjuj ją z najniższą zmienną, taką jak „ITER”.
    • Wybierz ostatniego członka tablicy, aby działał jako punkt obrotowy.
    • Przejdź przez tablicę. Następnie dopasuj każdy element do wartości obrotowej.
    • Jeśli element tablicy jest mniejszy niż obrotek, zwiększ „iter” i zamień ich pozycje.
    • Zwiększyć „i” o 1 i powtarzaj proces, aż do osiągnięcia końca tablicy. Zakończyć tam pętlę i zwróć ITER-1.

Zwrócona wartość daje nam pozycję wskaźnika obrotu. Przed obrotem istnieją elementy mniejsze niż wartość obrotu. Po obrotu istnieją elementy, które są większe niż wartość obrotu.

Do sortowania:

Teraz przejdź do sortowania. Użyj następujących instrukcji, aby sortować tablicę:

    • Wybierz ostatni element tablicy, który będzie działał jako obrot.
    • Zwracany algorytm partycji indeksu jest prawidłowym wskaźnikiem obrotu.
    • Metoda Quicksort jest wielokrotnie wywoływana po lewej i prawej stronie.

Za pomocą tych dwóch algorytmów możemy wykonać szybkie sortowanie w dowolnej tablicy. Przykład metody szybkiego sortowania jest wyjaśniony w następujący sposób:

Szybkie sortowanie w kolejności rosnącej

Wyjaśnijmy metodę „szybkiego sortowania” w celu sortowania tablicy liczb całkowitych w rosnącej kolejności.

Kod:

#włączać
za pomocą przestrzeni nazw Std;
void swap (int array_0 [], int pozycja_1, int pozycja_2)
int temp_0;
temp_0 = array_0 [pozycja_1];
array_0 [pozycja_1] = array_0 [pozycja_2];
array_0 [pozycja_2] = temp_0;
int parition (int array_0 [], int low, int high, int pivot)
int i_0 = niski;
int J_0 = niski;
While (I_0 <= high) if(array_0[i_0] > Pivot) i_0 ++;
else swap (array_0, i_0, j_0); i_0 ++; J_0 ++;
return J_0-1;

void QuickSort_0 (int array_0 [], int low, int high)
przepływam < high)
int Pivot = array_0 [high];
int pozycja = partycja (array_0, niski, wysoki, obrotowy);
QuickSort_0 (array_0, niski, pozycja 1);
QuickSort_0 (array_0, pozycja+1, wysoka);
int main ()

int n [4] = 12,3,8,6;
QuickSort_0 (n, 0, 3);
Cout<<"The sorted array is: ";
dla (int i = 0; i < 4 ; i++) cout<< n[i]<<"\t";


Rozpocznij kod, importując bibliotekę i dołącz standardowy przestrzeń nazw. Następnie zdefiniuj metodę o nazwie „zamiana” typu powrotu pustki. W tej funkcji przejdź trzy parametry o typu liczb całkowitych. Dwa argumenty, „pozycja_1” i „pozycja_2”, są używane do pozycji. Trzeci „temp_0” to tablica. Metoda zamienia pozycje elementów tablicy. Zmienna o nazwie „TEMP_0” jest zadeklarowana w celu tymczasowego zapisania wartości. Ponadto zainicjuj ten „temp_0” z pierwszą pozycją tablicy. Następnie przypisz drugą pozycję tablicy do pierwszej pozycji tablicy „Pozycja_1”. I przypisz temp do drugiej pozycji tablicy, która jest „pozycja_2”. Działa to jako a = b; B = C; C = a. Ta metoda wykonuje jedynie zamianę.

Oprócz tego zdefiniuj inną funkcję dla partycji. Ta metoda dzieli tablicę na dwie części i dalsze dzieli pod-pod-podnoś. Ta funkcja jest metodą typu zwrotnego i zwraca wartość liczb całkowitą, która zawiera prawidłowy wskaźnik obrotu. Ta metoda parition () ma cztery argumenty typu liczb całkowitych. Pierwszy to tablica „array_0”, drugi to „niski”, który przechowuje indeks początkowy tablicy, trzeci to „wysoki”, który zawiera ostatni wskaźnik tablicy, a czwarty to „Pivot”. W ramach tej metody zainicjuj dwie zmienne - „I_0” i „J_0” - z „niskim”. Te dwie zmienne mają typ danych „int”. Jak wiemy, „niski” zawiera początkowy wskaźnik tablicy. W następnym wierszu użyj pętli „while”, aby iterować na tablicy. Najpierw ustaw warunek „„ While ”jako I_0 <= high. Iterate until we reach the last index of the array. Inside the “while” loop, employ the “if” decision-making statement to check whether the array elements are greater than the pivot or not. If this condition is fulfilled, the body of “if” executes which increments the iterator. Otherwise, the body of “else” is run. In the body of “else”, we callthe swap() method that swaps the array values until they are in ascending order. Outside the “while”, return the “j_0-1” to the function. Because that is incremented in the “else” part.

Zdefiniuj inną metodę QuickSort () typu powracającego, aby wykonać szybkie sortowanie. Do tej funkcji dostarczono trzy argumenty - „array_0”, „niski” i „high” - posiadające dane typu liczb całkowitych. Ponadto ustaw warunek „jeśli”. Jeśli „niski” jest mniejszy niż „wysoki”, zainicjuj „obrotność” z ostatnim indeksem tablicy „High”. W przypadku zmiennej „pozycji” wywołaj metodę parition (). Następnie rekurencyjnie przywołuj funkcję Quicksort () po prawej i lewej podbrzeżu.

W ostatniej części kodu zastosuj metodę main (). Następnie zainicjuj tablicę typu „INT” i wywołać metodę QuickSort_0 (). Ta funkcja zawiera trzy argumenty. Wykonuje szybkie sortowanie w określonej tablicy i sortuje tę tablicę. Wprowadź „cout<<” command to print the “The sorted array is:” line. To display the sorted array, use a “for” loop and iterate until the end of the array is reached.

Wyjście:

Posortowana tablica to: 3 6 8 12

Wniosek

Szybkie sortowanie w C ++ jest omawiane w tym przewodniku. W programowaniu konieczne jest zorganizowanie tablic w kolejności rosnącej lub zstępującej. Istnieje wiele algorytmów sortowania, takich jak sort. Szybki sort jest jednym z nich, ale jak sama nazwa mówi, że jest to tablica szybciej niż inne. W tym artykule wyjaśniono, czym jest obrotem, który element tablicy może być obrotem, które algorytmy są używane do szybkiego sortowania i jak działają. Ten artykuł kończy się kodem C ++, w którym wdrażamy szybki sort.