Przykład 1:
Zaczynamy od wybrania elementu obrotowego. Następnie, aby zapętlić wszystkie elementy na liście, używamy Pythona do pętli. Jeśli liczba jest <= to the pivot, it is shifted to the left. Otherwise, it shifts to the right side of the pivot. Our Python program returns the new high value. Item + 1 equals the new high value. After that, we must execute our algorithm. A separate procedure can be created to achieve this. This function compares the values of “low_point” and “high_point” to test if “low_pont” is less than “high_point.” We'll be likely to progress if that's the case. Otherwise, our sorting will come to a halt. When our sorting comes to a halt, it signifies the list has been sorted.
Metoda PREPE () jest następnie wywoływana przez nasz kod. To lokalizuje wskaźnik obrotowy i przenosi rzeczy do odpowiednich lokalizacji. Metoda Quicksort () jest zatem dwukrotnie nazywana przez nasz program. Po raz pierwszy używamy Quicksort na kawałkach po lewej stronie obrotu. Do drugiej próby używamy Quicksort na obiektach po prawej stronie. W rezultacie, ponieważ się wywołuje, nasza funkcja jest rekurencyjna. Utwórzmy teraz podstawowy program, który tworzy listę sortowalną. Zaczynamy od określania zestawu wartości do sortowania. Funkcja Python len () służy do określenia długości naszego zestawu atrybutów. Następnie stosuje się metodę Quicksort ().
def przygotuj (dane, Low_Point, High_Point):Tutaj możesz zobaczyć, że dane są sortowane.
Przykład 2:
W tym przykładzie użyjemy dwóch funkcji: parition () i QuickSort (). Funkcja Quicksort () najpierw kolekcja, a następnie wywołuje rekurencyjnie na partycjonowanych utworach. Najpierw spójrzmy na funkcję Division (). Pivot został ustalony na pierwszym miejscu, jak widać w kodzie. Jeśli wartość, którą teraz oglądamy, jest wyższa niż obrot. Możemy przejść do następnego kawałka po lewej, ponieważ jest on po prawej stronie obrotu. Musimy również upewnić się, że nie minęliśmy niskiego wskaźnika, co wskazuje, że wszystkie elementy zostały przeniesione na właściwą stronę obrotu. Następnie przeprowadzana jest metoda przeciwna do powyższego. Znaleźliśmy liczbę pozarządową zarówno dla High_Point, jak i Low_Point, albo Low_Point jest większy niż High_Point, w którym to przypadku opuścimy pętlę. Na koniec załóżmy kod Quicksort (). Możemy użyć Quicksort () w podstawowej tablicy do wdrożenia obu funkcji (partycja i QuickSort).
def PARTITION (ARR1, Start, End):To jest wynik. Nie ma gwarancji, że te dwa 22 -letnie były w tej kolejności, ponieważ metoda jest niestabilna. Może na początku zostały zmienione, ale to nie oznacza niczego w tablicy całkowitej.
Przykład 3:
W tym przykładzie sortujemy niestandardowe obiekty. Istnieje kilka różnych sposobów rozszerzenia tego algorytmu w celu sortowania niestandardowych obiektów w Pythonie. Operatorzy porównawcze dla określonej klasy mogą zostać zaimplementowani w stylu pytalniczym, co oznacza, że nie musielibyśmy zmieniać algorytmu, ponieważ>, ==, =, itp., działałby najlepiej w naszym obiekcie klasowym. Jeszcze jedną opcją jest, aby dzwoniący dostarczył nasz algorytm metodę, która następnie zostałaby wykorzystana do wykonania faktycznego porównania przedmiotów. Jest dość proste do przepisywania algorytmu do użycia za pomocą obiektów na zamówienie. Pamiętaj jednak, że algorytm nie jest całkowicie stabilny. Zacznijmy od klasy uczniów. Ta klasa ma tylko dwie cechy: imię i imię ucznia. Sortujemy wiek, co osiągniemy, podając algorytm sortowania nowej funkcji Lambda. Ale najpierw przyjrzyjmy się, w jaki sposób ta funkcja jest używana w algorytmie. Zamiast używać operatorów = lub> = do dokonania bezpośredniego porównania, używamy funkcji, aby ustalić, który uczeń jest starszy. Lambda przesyła obiekt w porównaniu do wywołania szybkiego sortowania, które dokonuje dokładnego porównania atrybutów wieku.
Uczeń klasy:Tutaj możesz zobaczyć posortowaną listę nazwisk.
Wniosek:
Tablica jest podzielona za pomocą algorytmu Python Quicksort, a następnie sortuje każdy wpis na liście; Ta metoda wielokrotnie wywołuje te tablice. Przeszliśmy tę koncepcję dogłębnie z przykładami w tym artykule.