Zum Inhalt springen

Hilfe beim Bubblesort C++


Empfohlene Beiträge

Geschrieben

Hallo alle,

ich bin noch ein richtiger Anfänger im Programmieren und lerne noch.

Ich habe jetzt ein Problem und komme durch suchen und suchen nicht auf die Lösung.

Hier ist mein Quellcode:

for ( i=0; i<n; i++) //n ist vordefiniert als 5

{

	for( j=0;j<n-1; j++) 

	{

		if(var[i] < var[i+1])

		{

			swp = var[i+1];

			var[i+1] = var[i];

			var[i] = swp;


		}

	}

}

Meine Frage ist nun, wie gebe ich den sortierten Bubblesort aus, also an welcher Stelle:)?

Danke im Vorraus,

Fatlind

Geschrieben

Moin!

Ich moechte Deine Frage mit einer Gegenfrage beantworten, die Dich hoffentlich auf den richtigen Weg bringt:

Wo ist denn Dein Array var fertig sortiert?

An dieser stelle wuerde ich dann die sortierten Elemente ausgeben.

Geschrieben

Wenn ich das richtig sehen, ist zusätzlich die Sortierung noch etwas krumm.

Ein einfacher Test.

Gegeben sind die Zahlen 5 1 3 4 2.

Daraus wird dann sortiert:

5 1 3 4 2

1 5 3 4 2

1 3 5 4 2

1 3 4 5 2

1 3 4 2 5

Frank

Geschrieben

Da hat Frank natürlich völlig recht! Den Code habe ich mir gar nicht so genau angeschaut, wie ich zu meiner Schande gestehen muss.:old

Aber jetzt habe ich mal einen Blick drauf geworfen un drate Dir, Deine Indizes anzuschauen. Sowohl bei der inneren Schleife, als auch bei der Obergrenze der inneren Schleife.

Da sieht man aber auch mal wieder, dass eine sprechende Variablenbenennung helfen kann Fehler schneller zu entdecken, bzw erst garnicht zu begehen.

Geschrieben

Machen wir's kurz: Ich würde es wie unten machen (Indizes wechseln und an zwei Stellen optimieren), wenn's schon Bubble-Sort sein muss.

bool sortiert=false;

for ( i=0; i<n && !sortiert; i++) //n ist vordefiniert als 5

{

        sortiert=true;

	for( j=0;j<n-1-i; j++)  //-i, damit sortierte Elemente nicht neu vergleichen werden

	{

		if(var[j] < var[j+1])

		{

			swp = var[j+1];

			var[j+1] = var[j];

			var[j] = swp;

			sortiert=false;

		}

	}

}

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...