Creative Saplings

Bästa fallet för bubblasortering

januari 20, 2021
No Comments

Bubblesortering anses vara en av de enklaste sorteringsalgoritmerna som fungerar genom att upprepade gånger byta intilliggande element om de är i fel ordning. Med en algoritm för bubblasortering kommer du att kunna se att det största elementet (förutsatt att vi sorterar från minsta till största) kommer att ”bubbla” upp till toppen av listan eller matrisen.

Exempel:
Antag att vi vill sortera en lista eller matris med element i stigande ordning (från minsta till största): List = (3,1,2)

Eftersom ingen byte inträffade berättar detta att matrisen är redan sorterad i stigande ordning!

Bästa fallet

Låt oss nu prova samma algoritm igen men den här gången använder vi bästa fallsscenariot, det är när elementen redan är sorterade i ordningen ( stigande) skulle vi vilja.

Eftersom ingen byte inträffade är vi klara och algoritmen gjorde bara två jämförelser och antalet element i matrisen som vi kommer att kalla n = 3. Så vi kan se att för n element i detta fall tar algoritmerna i bästa fall endast n-1-jämförelser, n-1 = O (n)

Proceduren eller algoritmen som vi använde är nedan:

Denna algoritm använder en flagga för att berätta om elementen har bytts ut eller inte , vilket gör att bubblasorteringsalgoritmen i bästa fall kan vara O (n) istället för O (n²) som en annan implementering av bubblasortering.

Ovanstående algoritm
Worst Case = O (n²)
Bästa fall = O (n)

Få C-koden här: https://github.com/randerson112358/C-Programs/blob/master/BubbleSort2.c

Låt oss ta en titt på en annan implementering av bubblasorteringsalgoritmen:

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

Ovanstående algoritm – Värsta fall = O (n²)
Bästa fall = O (n²)

Värsta fall

Låt oss sortera en matris eller lista = (3,2,1) det här skulle vara det värsta fallet där listan är i helt motsatt ordning än vad vi önskar (i stigande ordning) med ovanstående algoritm.

First Pass:
(3,2,1) – > Jämför elementen 3 & 2
(2,3 , 1) – > Byt 3 & 2 sedan 2 < 3
( 2,3,1) – > Jämför elementen 3 & 1
(2,1,3) – > Byt 1 & 3 sedan 1 < 3

Andra pass:
(2,1,3) – > Jämför elementen 2 & 1
(1,2,3) – > Byt 2 & 1 sedan 1 < 2
(1,2,3) – > Jämför element 2 & 3
(1,2,3) – > Ingen byte behövs sedan 2 < 3

Vi har nu slutat slinga igenom båda slingorna så att matrisen måste sorteras i stigande ordning.

Observera att vi gjorde 4 jämförelser i ovanstående andra exempel, och antalet element i matrisen kommer vi att kalla ’n’ = 3, så antalet jämförelser som gjorts är (n-1) ², och (n-1) ² = O (n²)

Hämta koden här:

En bra bok som förbereder dig för kodnings- / programmeringsintervjuer kallas också för att knäcka kodningsintervjun. Det hjälper dig att bekanta dig med sorteringsalgoritmer och problemlösning, så se till att kolla in det!

Cracking The Coding Interview

Tack för att du läser den här artikeln. Jag hoppas att det är till hjälp för er alla! Fortsätt lära dig, och om du vill ha fler videor med algoritmanalys, vänligen besök och prenumerera på mina YouTube-kanaler (randerson112358 & compsci112358)

Kolla in följande för mer innehåll / videor om algoritmanalys och programmering:

YouTube-kanal:
randerson112358: https://www.youtube.com/channel/UCaV_0qp2NZd319K4_K8Z5SQ

compsci112358:

Webbplats:

Videohandledning om återkommande relation:

Videohandledning om algoritmanalys:

Twitter:

Articles
Previous Post

Hur man beräknar matkostnader 2020 (Den ultimata guiden)

Next Post

vegetabiliskt pakora

Lämna ett svar Avbryt svar

Senaste inläggen

  • Världens bästa fotoskolor, 2020
  • Suveräna medborgare tar sin regeringsfilosofi mot vägarna
  • Guide för reparation av stuckaturer
  • Muckrakers (Svenska)
  • Precision Oncology (Svenska)

Arkiv

  • februari 2021
  • januari 2021
  • december 2020
  • november 2020
  • oktober 2020
  • september 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.