Hab eine Frage zu Bubble Sort in C#

3 Antworten

Da fehlt auch noch ein bisschen was... du hast als Eingabe eine unsortierte Liste (hier "array" genannt). Diese wird mit der Zählvariablen von 1 bis zur Größe durchgegangen. Wenn ein Wert größer als sein Vorgänger ist, dann wird er in eine temporäre Variable geschrieben und und quasi mit seinem Vorgänger vertauscht. Es wird also quasi zunächst der 1. mit dem 0., dann der 2. mit dem 1. usw. verglichen. (In diesem Fall) große Werte steigen also wie "Blasen" in der Liste immer weiter nach oben bzw. vorne. (Daher der Name) Beim Tauschen muss auch noch vermerkt werden, dass eine Änderung stattgefunden hat. (das hat dein Freund hier noch nicht gemacht). Wenn die ganze Liste einmal durchlaufen ist, ohne dass eine Änderung stattgefunden hat, dann ist die Liste sortiert und der Algorithmus fertig. Das ganze musst du also mit 2 Schleifen umhüllen: eine Zählschleife, die die Liste durchläuft und darum eine Schleife, die prüft, ob im aktuellen Durchlauf Änderungen waren.

I kann leider nur C und kein C# ... Aber soviel ich weis bedeutet If [wenn] nur fals die bedingung oben zutrifft , dann wird der erste wert umgespeicher und dann minus 1 gerechnet .... Sry mehr kann ich dir dazu aber auch nicht sagen :))

42

Wenn der Fragesteller nicht dazugeschrieben hätte, dass es C# ist, dann wüsstest du das auch nicht - das wäre auch gültiger C-Code ;) Deine Ausführungen sind auch falsch, du musst zwischen Wert und Index des Arrays unterscheiden.

1

Der Bubblesort vergleicht immer 2 Werte miteinander. Am einfachsten kann man das anhand von Zahlen veranschaulichen. Nehmen wir mal folgende Zahlenreihe:

14328

Wenn der Bubblesort anfängt vergleicht er die ersten beiden Zahlen.

1 4 328

Wenn jetzt Wert 1 größer ist als Wert 2, dann würde getauscht werden ( if(array[j] > array[j + 1])... Ist es hier nicht. Dann wird das Array eins weitergesetzt( array[j] += 1 ) und der Vergleich startet erneut:

1 4 3 28

Jetzt ist der Wert größer, also wird einer der beiden Werte in eine Variable zwischengespeichert und die beiden Werte werden einfach getauscht, wie oben in Deiner Formel gezeigt (bloß in meinem Beispiel mit + anstatt -) ...

1 3 4 28

Das wird so lang gemacht, bis es nur noch in der richtigen Reihenfolge sein kann ;-)

8

danke danke danke! :D

0

Was möchtest Du wissen?