Wprowadzenie do sortowania sterty w Pythonie

Każdy z języków programowania zapewnia różne funkcje dzięki predefiniowanym funkcjom. Wykorzystując predefiniowane metody i funkcje oferowane przez język programowania, można opracować złożoną aplikację. Kiedy mówimy o przekształceniu wartości listy w posortowaną formę, podejście nazywa się sortowaniem. Chociaż wynik sortowania jest taki sam, niezależnie od metody sortowania, najlepsze podejście zapewnia wydajność sortowania danych. Jeśli chodzi o sortowanie przy użyciu języka programowania Python, mamy metodę sort (), która może po prostu zaakceptować wartość i posortować ją w porządku rosnącym. W tym artykule nauczymy się sortować dane tablicy w porządku rosnącym przy użyciu sortowania sterty i będziemy używać języka programowania Python do wykonania implementacji kodu heapsort.

Jak działa sortowanie sterty w Pythonie?

  • Przed wyjaśnieniem działania Pythona ważne jest, aby zrozumieć, co to właściwie jest i czym różni się od innych algorytmów sortowania. Heapsort można traktować jako metodę sortowania, w której maksymalna wartość z listy jest napotykana i przenoszona na ostatnią część tablicy, a proces jest utrzymywany przy powtarzaniu się, dopóki lista nie zostanie przekształcona w posortowaną listę. sposób, który odróżnia go od innych metod sortowania, jest niczym innym, jak tylko podejściem, które stosuje, aby posortować wszystkie wartości macierzy. Składa się z procesu rekurencyjnego, który trwa do momentu ułożenia wartości w szyku w porządku rosnącym.
  • Teraz pozwól nam zrozumieć, jak szczegółowo działa sortowanie sterty na przykładzie. Załóżmy, że arr jest tablicą, która przechowuje wartości takie jak 9, 5, 2. Na początku wartości tablicy nie są ułożone w posortowany sposób, ale po wykonaniu sortowania sterty zostanie ona zmieniona w kolejności rosnącej. Kiedy algorytm sortowania sterty zostanie zastosowany do tej tablicy, pierwszą rzeczą, którą zrobi, aby znaleźć naszą największą wartość w tablicy. Ponieważ 9 jest największą wartością, zostanie przeniesiona do ostatniego indeksu listy, a wszystkie pozostałe wartości przesuną się o jeden krok w lewo, aby stworzyć miejsce do przechowywania największej wartości. Po przesunięciu 9 na ostatni indeks lub tablicę tablic lista wartości będzie wyglądać jak 5, 2, 9.
  • Teraz nadal tablica nie jest sortowana, co wskazuje, że ten sam proces musi zostać powtórzony. Teraz, znajdując największą wartość z listy nieprzetworzonych wartości, 5 zostanie wybrana jako druga co do wielkości wartość i zostanie przeniesiona do drugiego ostatniego indeksu. Po przesunięciu 5 w drugim ostatnim położeniu, tablica zostanie przekształcona w tablicę posortowaną, a wartości zostaną ustawione w kolejności rosnącej jak np. 2, 5, 9. W ten sposób działa sortowanie sterty. W rzeczywistości określa maksymalną wartość i przenosi ją na koniec tablicy i wykonuje ten sam proces, dopóki tablica nie zmieni się w posortowaną tablicę.

Przykłady implementacji sortowania sterty w Pythonie

Aby poznać koncepcję heapsortu, zrozummy ją na przykładzie. Będziemy implementować algorytm sortowania sterty przy użyciu języka python. Aby opracować program, użyjemy pętli for do wprowadzenia mechanizmu rekurencji i będziemy używać sprawdzania warunków w celu weryfikacji warunków. W poniższym kodzie perform_heapsort jest funkcją, która akceptuje trzy argumenty: val_arr, num i count, gdzie var_arr jest tablicą, podczas gdy num i count są liczbami całkowitymi. Poniższy kod polega na znalezieniu największej liczby i przytrzymaniu jej tymczasowo w zmiennej max_val, dopóki nie zostanie przesunięta na koniec tablicy. Jeśli zastosowano oświadczenie, aby upewnić się, że największa wartość zostaje przesunięta do odpowiedniej pozycji i że pozycja ta jest blokowana przed aktualizacją o następną największą wartość na liście. Program będzie powtarzał podejście polegające na znalezieniu największej wartości i przesunięciu jej do końca, aż lista przejdzie do posortowanej.

Kod:

def perform_heapsort(val_arr, num, count):
max_val = count
counter1 = 2 * count + 1
counter2 = 2 * count + 2
if counter1 < num and val_arr(count) < val_arr(counter1):
max_val = counter1
if counter2 < num and val_arr(max_val) < val_arr(counter2):
max_val = counter2
if max_val != count:
val_arr(count), val_arr(max_val) = val_arr(max_val), val_arr(count) perform_heapsort(val_arr, num, max_val)
def heapSort(val_arr):
num = len(val_arr)
for count in range(num, -1, -1):
perform_heapsort(val_arr, num, count)
for count in range(num-1, 0, -1):
val_arr(count), val_arr(0) = val_arr(0), val_arr(count) # swap
perform_heapsort(val_arr, count, 0)
val_arr = ( 52, 91, 64, 252, 36, 91, 5, 35, 28) heapSort(val_arr)
num = len(val_arr)
print ("Values after performing heapsort")
for count in range(num):
print ("%d" %val_arr(count)),

W tym programie wartości zostały przypisane ręcznie za pomocą kodu. Var_arr to tablica przechowująca wartości. W tym przykładzie przypisaliśmy 9 wartości do tablicy. Wartości w tablicy zostaną przekazane do metody o nazwie perform_heapsort. Po wprowadzeniu wartości do metody zostanie ona przetworzona, a program rozpocznie wyszukiwanie największej wartości z listy. Maksymalna wartość w tej tablicy wynosi 252, więc zostanie przesunięta na koniec tablicy, a proces ten zostanie zastosowany do wszystkich wartości, dopóki tablica nie zmieni się w sortowaną. Po posortowaniu tablicy przez program dane wyjściowe zostaną wyświetlone w danych wyjściowych.

Wynik:

Wniosek

Heapsort jest jednym z różnych algorytmów sortowania. Ostatecznym wyjściem tego algorytmu jest posortowana lista z danymi ułożonymi w porządku rosnącym. Ponieważ proces jest powtarzany i za każdym razem, gdy wszystkie wartości są przesuwane w lewo w celu dostosowania maksymalnej wartości listy na końcu tablicy, jest to uważane za mniej wydajny algorytm sortowania. Takie podejście do sortowania można wykorzystać w aplikacji, która ma przetwarzać niewielką liczbę wartości.

Polecane artykuły

Jest to przewodnik po sortowaniu sterty w Pythonie. Tutaj omawiamy wprowadzenie do sortowania sterty w Pythonie, jak działa sortowanie sterty w Pythonie oraz przykłady implementacji sortowania sterty w Pythonie. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej-

  1. Co to jest informatyka?
  2. Co to jest uczenie maszynowe?
  3. Bezpieczeństwo aplikacji internetowych
  4. Funkcje Pythona
  5. Przewodnik po algorytmach sortowania w Pythonie