Jak zaimplementować sortowanie bąbelkowe w Pythonie?



Na tym blogu poznasz kod i wyjaśnienie sortowania listy w Pythonie za pomocą sortowania bąbelkowego przy użyciu metody swapping.

Sortowanie oznacza uporządkowanie dowolnych danych w kolejności rosnącej lub malejącej zgodnie z pewną liniową zależnością między elementami. Ten artykuł na temat Bubble Sort in pomoże ci szczegółowo zrozumieć tę koncepcję.

Na tym blogu omówimy poniższe tematy:





Co to jest sortowanie bąbelkowe?

Sortowanie bąbelkowe jest również znane jako sortowanie tonące. Jest to prosty algorytm sortowania, który nieustannie przechodzi przez listę do posortowania, porównując każdą parę sąsiednich elementów i zamieniając je, jeśli nie są we właściwej kolejności. Kroki są powtarzane, dopóki nie będą już potrzebne wymiany, czyli wtedy, gdy lista jest sortowana.

Kroki wykonywania sortowania bąbelkowego

  • Porównaj pierwszy i drugi element na liście i zamień je, jeśli są w złej kolejności.
  • Porównaj drugi i trzeci element i zamień je, jeśli są w złej kolejności.
  • Postępuj podobnie, aż do ostatniego elementu listy w podobny sposób.
  • Powtarzaj wszystkie powyższe kroki, aż lista zostanie posortowana.

Powyższe kroki będą bardziej zrozumiałe dzięki poniższym wizualizacjom -



Sortowanie bąbelkowe w Pythonie - Edureka



Algorytm sortowania bąbelkowego

Spójrzmy teraz na algorytm stojący za sortowaniem bąbelkowym.

Pierwszy przebieg:

( 16.19 , 11, 15, 10) -> ( 16.19 , 11, 15, 10) - Algorytm porównuje dwa pierwsze elementy i swapy od 19> 16

(16, 19.11 , 15.10) -> (16, 11.19 , 15.10) - Zamień od 19> 11

(16.11, 19.15 , 10) -> (16,11, 15.19 , 10) - Zamień od 19> 15

(16,11,15, 19.10 ) -> (16,11,15, 10.19 ) - Teraz, ponieważ te elementy są już w odpowiedniej kolejności (19> 10), algorytm ich nie zamienia.

Drugie przejście:

( 16.11 , 15,10,19) -> ( 11.16 , 15,10,19) - Zamień od 16> 11

(jedenaście, 16.15 , 10,19) -> (11, 15.16 , 10,19) - Zamień od 16> 15

(11,15; 16.10 , 19) -> (11,15, 10.16 , 19) - Zamień od 16> 10

(11,15,10,16,19) -> (11,15,10,16,19)

Plik jest posortowany, ale nasz algorytm nie wie, czy jest zakończony. W związku z tym, aby wiedzieć, że jest posortowany, potrzebuje jeszcze jednego całego przebiegu bez żadnej zamiany.

Trzecie podanie:

(jedenaście, 15.10 , 16, 19) -> (11, 15.10 16,19)

(jedenaście, 15.10 , 16, 19) -> (11, 10.15 , 16,19) - Zamień od 15> 10

(11,10,15,16,19) -> (11,10,15,16,19)

(11,10,15,16,19) -> (11,10,15,16,19)

Czwarty przebieg:

( 11.10 , 15,16,19) -> ( 10.11 , 15,16,19) - Zamień od 11> 10

Ostateczny wynik to (10,11,15,16,19)

Zakodujmy to teraz -

Program w Pythonie do implementacji sortowania bąbelkowego

dlaczego powinienem się uczyć sql

a = [16, 19, 11, 15, 10, 12, 14]

#powtarzanie pętli len (a) (liczba elementów) ile razy dla j w zakresie (len (a)): # początkowo zamienione to false swapped = false i = 0 while ia [i + 1]: #swapping a [i ], a [i + 1] = a [i + 1], a [i] #Zmiana wartości swapped swapped = True i = i + 1 # if swapped is false to lista jest posortowana # możemy zatrzymać pętlę if swapped == False: break print (a)
 WYNIK: 


W powyższym kodzie porównujemy sąsiednie liczby i zamieniamy je, jeśli nie są we właściwej kolejności. Powtórz ten sam proces len (a) kilka razy. Przypisaliśmy zmiennej „swapped” i nadaliśmy jej wartość „True”, jeśli jakiekolwiek dwa elementy zostaną zamienione w iteracji. A jeśli nie ma zamiany elementów, to lista jest już posortowana, a co za tym idzie, nie ma zmiany wartości elementu „zamienionego” i możemy przerwać pętlę.

Tym samym kończymy blog zatytułowany „Jak zaimplementować sortowanie bąbelkowe w Pythonie”. Mam nadzieję, że ta zawartość zwiększy Twoją wiedzę o Pythonie.

Upewnij się, że ćwiczysz jak najwięcej i cofnij swoje doświadczenie.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy tego bloga „Jak zaimplementować sortowanie bąbelkowe w Pythonie”, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.

Aby uzyskać dogłębną wiedzę na temat języka Python i jego różnych aplikacji, możesz zarejestrować się na żywo z całodobowym wsparciem i dożywotnim dostępem.