Brauche Hilfe beim Verstehen einer Schleife für Bubble-Sort in C.

hhtoprakhh

Enthusiast
Thread Starter
Mitglied seit
20.03.2007
Beiträge
2.759
Ort
Hamburg
Ich lerne gerade für meine Programmieren 1 Klausur und habe ein Verständnisproblem bei dem Bobblesort Algorithmus, genauer, einer Schleife darin.

Kann mir den Codeabschnitt jemand erklären ?

Die betreffenden Codezeilen sehen wie folgt aus:
Code:
void bubble_sort(int n, int z[])
{
	int i, j, speicher = 0;
		
	for (i = 0; i < n - 1; i++)
	{
	        for (j = 0; j < n - 1 - i; j++)
		{
			if (z[j] > z[j + 1])
			{
				speicher = z[j];
				z[j] = z[j + 1];
				z[j + 1] = speicher;
			}
		}
	}
}

Danke im Vorraus
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Code:
void bubble_sort(int n, int z[])
{
	int i, j, speicher = 0;
		
	for (i = 0; i < n - 1; i++) //Mehrfache Wiederholung, da pro Schleifendurchlauf zT nur eine Zahl verschoben wird (z.B größte Zahl nach hinten). Nach dem i. Durchlauf sind die letzten i Elemente sortiert
	{
	        for (j = 0; j < n - 1 - i; j++) //Durchläuft die Elemente des Arrays, i wird abgezogen, da mit jedem Schleifendurchlauf von i die hinteren Elemente am größten sind (in der richtigen Reihenfolge)
		{
			if (z[j] > z[j + 1]) // Wenn das aktuelle Element (j) größer ist als das nächste(j+1), werden die Zahlen getauscht
			{
				speicher = z[j];
				z[j] = z[j + 1];
				z[j + 1] = speicher;
			}
		}
	}
}
 
Riesen Dank, hatte Schwierigkeiten die zweite For-Schleife richtig zu verstehen.

:wink:
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh