Creative Saplings

Najlepszy przypadek do sortowania w dymkach

20 stycznia, 2021
No Comments

Sortuj w dymku jest uważany za jeden z najprostszych algorytmów sortowania, który działa na zasadzie wielokrotnej zamiany sąsiednich elementów, jeśli są w złej kolejności. Dzięki algorytmowi sortowania bąbelkowego zobaczysz, że największy element (zakładając, że sortujemy od najmniejszego do największego) będzie „bąbelkowy” na górę listy lub tablicy.

Przykład:
Załóżmy, że chcemy posortować listę lub tablicę elementów w porządku rosnącym (od najmniejszego do największego): List = (3,1,2)

Ponieważ nie nastąpiła zamiana, oznacza to, że tablica jest już posortowane w kolejności rosnącej!

Najlepszy przypadek

Teraz wypróbujmy ten sam algorytm ponownie, ale tym razem używając najlepszego scenariusza, czyli gdy elementy są już posortowane w kolejności ( rosnąco) chcielibyśmy.

Ponieważ żadna zamiana nie nastąpiła, jesteśmy skończeni, a algorytm wykonał tylko 2 porównania i liczbę elementów w tablicy, którą nazwiemy n = 3. Więc widzimy, że dla n elementy w tym algorytmie w najlepszym przypadku przyjmie tylko n-1 porównań, n-1 = O (n)

Procedura lub algorytm, których użyliśmy jest poniżej:

Ten algorytm używa flagi aby stwierdzić, czy elementy zostały zamienione, czy nie , co pozwala algorytmowi sortowania bąbelkowego najlepszym przypadkiem być O (n) zamiast O (n²), jak w innej implementacji sortowania bąbelkowego.

Powyższy algorytm
Najgorszy przypadek = O (n²)
Najlepszy przypadek = O (n)

Pobierz kod w C tutaj: https://github.com/randerson112358/C-Programs/blob/master/BubbleSort2.c

Przyjrzyjmy się innej implementacji algorytmu sortowania bąbelkowego:

BUBBLESORT(A)
1 for i = 1 to A.length - 1
2 for j = A.length downto i + 1
3 if A < A
4 exchange A with A

Powyższy algorytm
Najgorszy przypadek = O (n²)
Najlepszy przypadek = O (n²)

Najgorszy przypadek

Posortujmy tablicę lub listę = (3,2,1). Byłby to najgorszy przypadek, gdy lista jest w całkowicie odwrotnej kolejności niż chcemy (w porządku rosnącym) przy użyciu powyższego algorytmu.

Pierwszy przebieg:
(3,2,1) – > Porównanie elementów 3 & 2
(2,3 , 1) – > Zamień 3 & 2 od 2 < 3
( 2,3,1) – > Porównaj elementy 3 & 1
(2,1,3) – > Zamień 1 & 3 od 1 < 3

Drugi przebieg:
(2,1,3) – > Porównaj elementy 2 & 1
(1,2,3) – > Zamień 2 & 1 od 1 < 2
(1,2,3) – > Porównaj elementy 2 & 3
(1,2,3) – > PODMIANA nie jest wymagana od 2 < 3

Zakończyliśmy już przechodzenie przez obie pętle, więc tablica musi być posortowana w porządku rosnącym.

Zauważ, że w powyższym drugim przykładzie dokonaliśmy 4 porównań i liczba elementów w tablicy, którą nazwiemy „n” = 3, więc liczba wykonanych porównań to (n-1) ², a (n-1) ² = O (n²)

Pobierz kod tutaj:

Również świetna książka przygotowująca Cię do wywiadów z zakresu kodowania / programowania nazywa się cracking the coding wywiad. Pomoże Ci to w zaznajomieniu się z algorytmami sortowania i rozwiązywaniu problemów, więc nie zapomnij go sprawdzić!

Cracking the Coding Interview

Dziękuję za przeczytanie tego artykułu Mam nadzieję, że jest on pomocny dla wszystkich! Kontynuuj naukę, a jeśli chcesz więcej filmów z analizą algorytmów, odwiedź i zasubskrybuj moje kanały YouTube (randerson112358 & compsci112358)

Sprawdź następujące więcej treści / filmów na temat analizy algorytmów i programowania:

Kanał YouTube:
randerson112358: https://www.youtube.com/channel/UCaV_0qp2NZd319K4_K8Z5SQ

compsci112358:

Witryna:

Samouczki wideo dotyczące relacji nawrotów:

Samouczek wideo dotyczący analizy algorytmów:

Twitter:

Articles
Previous Post

Jak obliczyć koszty żywności w 2020 r. (The Ultimate Guide)

Next Post

pakora warzywną

Dodaj komentarz Anuluj pisanie odpowiedzi

Najnowsze wpisy

  • Najlepsze szkoły fotograficzne na świecie, 2020
  • Suwerenni obywatele zabierają na drogi swoją antyrządową filozofię
  • Przewodnik po kosztach naprawy sztukaterii
  • Muckrakers (Polski)
  • Precyzyjna onkologia

Archiwa

  • Luty 2021
  • Styczeń 2021
  • Grudzień 2020
  • Listopad 2020
  • Październik 2020
  • Wrzesień 2020
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.