Wprowadzenie do Bubble Sortowania w Pythonie
Sortowanie bąbelkowe to prosty i logiczny algorytm sortowania. Jego zasada działania opiera się na rekurencyjnej zamianie sąsiednich elementów, jeśli zamówienie jest nieprawidłowe. W tym temacie dowiemy się o sortowaniu bąbelkowym w Pythonie.
Sortowanie bąbelkowe czasami nazywane także sortowaniem tonącym, sortowaniem falowym.
Zobaczmy na przykładzie:
Pierwszy bieg
( 6 1 4 3) -> ( 1 6 4 2): Tutaj pierwsze dwa elementy zostaną zamienione, jeśli kolejność jest nieprawidłowa.
(1 6 4 2) -> (1 4 6 2): Tutaj kolejne dwa elementy zostaną zamienione, jeśli kolejność jest nieprawidłowa.
(1 4 6 2 ) -> (1 4 2 6 ): Tutaj dwa kolejne elementy są zamieniane, jeśli kolejność jest nieprawidłowa.
Drugi bieg
( 1 4 2 6) -> ( 1 4 2 6): Tutaj porównuje się pierwsze dwa elementy, ale nie zamieniły się, ponieważ kolejność jest prawidłowa.
(1 4 2 6) -> (1 2 4 6): Tutaj zamieniane są kolejne dwa elementy, ponieważ kolejność jest nieprawidłowa.
(1 2 4 6 ) -> (1 2 4 6 ): Tutaj dwa ostatnie elementy są porównywane, ale nie zamieniły się zgodnie z kolejnością
Teraz wiemy, że tablica wygląda na posortowaną, jednak wymagany jest jeden przebieg bez zamiany, aby algorytm wiedział, czy sortowanie jest wykonane.
Trzeci bieg
( 1 2 4 6) -> ( 1 2 4 6): Brak zamiany w 1. dwóch elementach.
(1 2 4 6) -> (1 2 4 6): Brak zamiany w kolejnych dwóch elementach.
(1 2 4 6 ) -> (1 2 4 6 ): Brak zamiany w ostatnich dwóch elementach.
Ponieważ na żadnym etapie nie wystąpiły wymiany, algorytm rozumie, że sortowanie jest idealne.
Sortowanie bąbelkowe ma swoją nazwę, ponieważ elementy poruszają się w odpowiedniej kolejności, podobnie jak bąbelki unoszące się na powierzchnię.
Sortowanie bąbelkowe w języku Python
Zobaczmy teraz logiczną implementację sortowania bąbelkowego przez python. Python jest obecnie bardzo popularnym językiem. Zrozumienie go za pomocą Pythona z pewnością da ci pewność, że będziesz mógł napisać go również w innych językach.
Kod Python
def bubble_Sort(arr):
m = len(arr)
# Traverse through all the array elements
for u in range(m):
for v in range(0, mu-1):
# traverse the array from 0 to mu-1
# Swap if the element is greater than adjacent next one
if arr(v) > arr(v+1) :
arr(v), arr(v+1) = arr(v+1), arr(v)
Aby wydrukować tablicę po sortowaniu bąbelkowym, potrzebujesz kodu:
for i in range(len(arr)):
print("%d" %arr(i)),
Here arr will be your array.
Objaśnienie kodu Python
Tutaj „m” jest długością tablicy. Dwie pętle for przechowują rzeczywistą logikę gruntu, gdzie „u” oznacza pierwszy element, podczas gdy „v” oznacza drugi, z którym pierwszy element musi być porównywany w celu zamiany, jeśli kolejność sortowania między oboma nie jest poprawna.
„Arr (v)> arr (v + 1)” oznacza to porównanie kolejnych elementów, jeśli pierwszy element jest większy niż drugi element, operacja wymiany zostanie wykonana za pomocą następującego wyrażenia:
To znaczy „arr (v), arr (v + 1) = arr (v + 1), arr (v)”.
Ta operacja wymiany nazywana jest zamianą. Zaletą jest to, że do tego rodzaju operacji wymiany nie jest wymagana pamięć tymczasowa.
„U” reprezentuje pętlę każdego przebiegu, a „v” oznacza etapy każdego etapu. Można odwołać się do przykładu w powyższej sekcji.
Po wykonaniu sortowania bąbelkowego można zobaczyć posortowaną tablicę z kodem wymienionym poniżej:
for i in range(len(arr)):
print ("%d" %arr(i)),
Zobaczmy, jak to działa w Python IDE, dla głębszego zrozumienia:
Wynik:
Istnieje kilka faktów na temat Bubble Sort, o których każdy powinien wiedzieć przed jego wdrożeniem:
- Sortowanie bąbelkowe jest często uważane za niezbyt wydajną metodę sortowania. Ponieważ musi wymieniać przedmioty, dopóki nie będzie znana jego ostateczna lokalizacja. Wszystko to prowadzi do marnotrawstwa operacji, a zatem jest bardzo kosztowne. Algorytm ten przechodzi przez każdy element, gdzie sortowanie jest wymagane lub nie jest wymagane. Gdy przebieg minie bez zamiany, sortowanie bąbelkowe uważa się za zakończone.
- Jest to najprostsza ze wszystkich struktur danych, dla każdego początkującego daje to dużą pewność siebie. Łatwo go zbudować i zrozumieć.
- Zużywa dużo czasu i pamięci.
- Jest to uważane za algorytm stabilny, ponieważ zachowuje względną kolejność elementów.
- Uważany za dobry dla małej tablicy / listy. Jednak złym pomysłem jest używanie go na długie.
Wniosek
Przeglądając powyższą zawartość sortowania bąbelkowego, można uzyskać krystalicznie czyste zrozumienie tego algorytmu sortowania, specjalizującego się w pythonie. Kiedy już zaznajomisz się z logiką sortowania bąbelkowego, zrozumienie drugiego zestawu struktur danych będzie łatwiejsze. Logiczne podejście jest jedynym sposobem na wyróżnienie się w dziedzinie struktury danych. Najpierw powinno być zrozumienie logiki algorytmu struktury danych na każdym etapie, a następnie ukierunkowanie kodu na Python lub w dowolnym innym języku.
Polecane artykuły
To jest przewodnik po Bubble Sort w Pythonie. Tutaj omawiamy logiczną implementację sortowania bąbelkowego za pomocą kodu python z wyjaśnieniem. Możesz także spojrzeć na następujący artykuł, aby dowiedzieć się więcej -
- Pętle w Pythonie
- Operacje na plikach Python
- Palindrom w Pythonie
- Tablice 3D w Pythonie
- Funkcje Pythona
- Zamiana w PHP
- Tablice 3D w C ++
- Palindrom w C ++
- Palindrom w JavaScript
- Jak działają tablice i listy w Pythonie?