Der Bubblesort Algorithmus in C#.

In diesem Beitrag werde ich kurz erklären wie einfache und eigentlich ineffiziente „Bubblesort“-Algorithmus funktioniert. Und natürlich zeige ich auch wie man diesen in C# implementieren kann.

1. Wie funktioniert „Bubblesort“?

Im Prinzip gilt es folgendes Problem zu lösen. Im einfachsten Fall muss ein gegebenes Feld von z.B. Zahlen in aufsteigender Reihenfolge sortiert werden.

1

  1. Nimm die ersten zwei Zahlen hier 7 und 2. Siehe Bild oben.
  2. Vergleiche ob Zahle A größer ist als Zahl B.
  3. Wenn ja, Vertausche die Zahlen. Nimm die Nächsten zwei Zahlen.
  4. Wenn nein, nimm die Nächsten zwei Zahlen.

In Unserem Fall, A=7 und B = 2 ist A>B. Also werden sie Vertauscht, und das nächste Zahlenpaar wird geprüft. (Schritte 1-3)

2

Hier sind mit A=7 und B=9, A nicht > B also fahren wir mit Punkt 4 fort und vergleichen das nächste Zahlenpaar.

3

A=9 ist größer als B=6 also werden sie vertauscht und die nächsten zwei Zahlen werden verglichen.

4

So vergleichen jetzt bis zum Ende bis das Feld so aussieht.

5

Wie man sieht haben wir die Zahlen Nach einer Iteration nicht endgültig sortiert. Also wiederholen wir diesen Vorgang solange bis keine Vertauschungen mehr nötig sind…

5

2. Der Algorithmus.

Um die Abbruchbedingung zu prüfen, führen wir die Variable didSwap ein.
Demnach sieht unser Code wie folgt aus:

public List<int> Sort(List<int> _digitList)
        {
            List<int> digitList = _digitList;
            //Diese Variable dient dazu das Abbruchkriterium zu Prüfen.
            bool didSwap = true;

            while(didSwap)
            {
                didSwap = false;
                //Iteriere durch alle Zahlen.
                for (int i = 0; i < digitList.Count-1; i++)
                {
                    //Vergleiche alle A und B.
                    if (digitList[i] > digitList[i + 1])
                    {
                        //Wenn A>B, vertausche sie.
                        int temp = digitList[i];
                        digitList[i] = digitList[i + 1];
                        digitList[i + 1] = temp;
                        //Es wurden Zahlen vertauscht also ist die Abbruchbedingung nicht erfüllt.
                        didSwap = true;
                    }
                }
            }
            return digitList;
        }

Viel Spaß mit dem Code. Wie bereits erwähnt ist Bubblesort eine der schlechtesten Herangehensweisen für Sortieraufgaben.

Advertisements
Dieser Beitrag wurde unter .NET, Algorithmen, c#, Mathematik, Programmierung, Sortieralgorithmus abgelegt und mit , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Eine Antwort zu Der Bubblesort Algorithmus in C#.

  1. Pingback: Quicksort in C# | RealityBites

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s