Bubblesort geht nicht
-
Was mach ich verkert??????
beim sortiren# include <iostream> # include <cstdlib> # include <ctime> using namespace std; int main() { int lotto [6]; int i,j; int hilf; bool neueZahl; // srand(0); srand(time(0)); for ( i=0; i<6; i++) { do{ lotto[i] = rand() % 49+1; neueZahl = true; for ( j=0; j<i; j++) { if( lotto [j] == lotto [i]) { neueZahl = false; } } }while (! neueZahl); // cout << lotto [i] << endl; //###########ab hier wird sotiert ############### for(i=6 -1; i>0; i--) { for(j=0; j<i; j++) { if(lotto[j]>lotto[j+1]) { hilf = lotto[j]; lotto[j] = lotto[j+1]; lotto[j+1] = hilf; } } } //Ausgabe der sortierten Zahlen for(i=0; i<6; i++) { cout << i+1 << ". Nummer: " << lotto[i] << endl; } } return 0; }
viele dank
-
juhu123 schrieb:
Was mach ich verkert??????
Was funktioniert denn nicht? Du solltest immer eine Fehlerbeschreibung geben (falsches Resultat, kompiliert nicht, etc.).
-
Erstmal von der IDE automatisch einrücken lassen.
# include <iostream> # include <cstdlib> # include <ctime> using namespace std; int main() { int lotto [6]; int i,j; int hilf; bool neueZahl; // srand(0); srand(time(0)); for(i=0; i<6; i++) { do { lotto[i] = rand() % 49+1; neueZahl = true; for(j=0; j<i; j++) { if(lotto [j] == lotto [i]) { neueZahl = false; } } } while(! neueZahl); // cout << lotto [i] << endl; //Hier fehlt } //###########ab hier wird sotiert ############### for(i=6 -1; i>0; i--) { for(j=0; j<i; j++) { if(lotto[j]>lotto[j+1]) { hilf = lotto[j]; lotto[j] = lotto[j+1]; lotto[j+1] = hilf; } } } //Ausgabe der sortierten Zahlen for(i=0; i<6; i++) { cout << i+1 << ". Nummer: " << lotto[i] << endl; } }//Und die } ist entsprechend zu viel return 0; }
-
Fehlerkode gibt es keinen.
Nur die Lotto zahlen er geben keinen Sinn.
Ohne Sortierung ist alles OK.
Wahrscheinlich ist der Fehler im Bubblesort und ich finde ihn nicht
-
juhu123 schrieb:
Fehlerkode gibt es keinen.
Nur die Lotto zahlen er geben keinen Sinn.
Ohne Sortierung ist alles OK.
Wahrscheinlich ist der Fehler im Bubblesort und ich finde ihn nichtDer Fehler ist gefunden.
Falls Du den Mikrosoft-Kompiler verwendest, drück Strg+A und dann Alt+F8, um automatisch einrücken zu lassen.
-
Benütze code:Block auf Win 7 und habe nicht viel verstanden was los ist
-
juhu123 schrieb:
Benütze Code::Block auf Win 7 und habe nicht viel verstanden was los ist
Dann probier mal im Menu Plugins/SourceCodeFormatter(AStyle).
Und lies in meinem Code die von mir neu gesetzten Kommentare.
-
Danke erstmals, ich probiere es später mit Lubuntu und code:Block.
-
Es müsste ein Problem in der schleife vom Bubblesort sein. Denn das Lottozahlenprogaram
läuft ohne Bubblesort gut. Ich wäre auf eure Hilfe angewiesen. Es ist das erste mal das ich mit Bubblesort arbeite. Ich bin Anfänger.# include <iostream> # include <cstdlib> # include <ctime> using namespace std; int main() { int lotto [6]; int i,j; int hilfe = 0; bool neueZahl; // srand(0); srand(time(0)); for(i=0; i<6; i++) { do { lotto[i] = rand() % 49+1; neueZahl = true; for(j=0; j<i; j++) { if(lotto [j] == lotto [i]) { neueZahl = false; } } } while(! neueZahl); //########## Hier Wohnt das Problem for(i= lotto[i]-1; i>0; i--) { for(j= 0; j<i; j++ ) { if(lotto[j]>lotto[j+1] ) { hilfe = lotto[j]; lotto[j] = lotto[j+1]; lotto[j+1] = hilfe; } } } //################################################ cout << lotto [i] << endl; } return 0; }
-
Schau dir noch einmal den ersten Beitrag von volkard an. Er hat doch das Problem bereits gefunden, die Klammern sind falsch gesetzt. Bei einer anständigen Einrückung wäre das nicht passiert.
-
Buuuuh! Bubblesort ist Mist.
-
Kellerautomat schrieb:
Buuuuh! Bubblesort ist Mist.
Nicht immer.
https://www.youtube.com/watch?v=-1R40EVoyWo
-
Vielen herzlichen Dank.
Man bin ich blöd.
Es läuft.
-
juhu123 schrieb:
Was mach ich verkert??????
beim sortirenverkert => verkehrt
sortiren => sortierenjuhu123 schrieb:
Nur die Lotto zahlen er geben keinen Sinn.
Lotto zahlen => Lottozahlen
Weitere Fehler finde ich jetzt so spontan nicht. Aber ich hoffe, damit ist Dir schon mal geholfen
.
-
Kellerautomat schrieb:
Buuuuh! Bubblesort ist Mist.
Aber einfach zu lernen und deswegen fuer Lehrzwecke ganz sinnvoll.
-
Marthog schrieb:
Kellerautomat schrieb:
Buuuuh! Bubblesort ist Mist.
Aber einfach zu lernen und deswegen fuer Lehrzwecke ganz sinnvoll.
Und dann verwendet er noch womoeglich Bubblesort in production code. Ne danke.
-
Kellerautomat schrieb:
Und dann verwendet er noch womoeglich Bubblesort in production code. Ne danke.
Hab ich schon gemacht.
Außerdem hat mir Bubblesort auch beim Lernen sehr geholfen.
-
Kellerautomat schrieb:
Und dann verwendet er noch womoeglich Bubblesort in production code. Ne danke.
Und?
Ausserdem hat Bubblesort viele nuetzliche Eigenschaften. Es ist der einfachste Algorithmus, der stabil ist, fuer verkettete Listen geeignet ist und aus dem man ein Sortiernetz bauen kann.
-
Marthog schrieb:
Kellerautomat schrieb:
Und dann verwendet er noch womoeglich Bubblesort in production code. Ne danke.
Und?
Ausserdem hat Bubblesort viele nuetzliche Eigenschaften. Es ist der einfachste Algorithmus,Kann man abstreiten und behaupten, insetion sort sei einfacher. Oder natürlich bogosort, der ist echt einfacher.
Marthog schrieb:
der stabil ist,
Sind wohl die meisten in der Laufzeitnähe von bubblesort.
Marthog schrieb:
fuer verkettete Listen geeignet
Gerade quicksort und mergesort eignen sich hervorragend für verkettete Listen. Quicksort gestaltet sich einfach zu
-Erstes Element ausketten und zum Pivot machen.
-Zwei leere Listen anlegen.
-Alle Elemente anschauen und in die linke oder rechte Liste umketten.
-Die beiden rekursiven Aufrufe.
-LinkeListe-Pivot-RechteListe zusammenketten, fertig.
Mergesort ähnlich schlicht und Mergesort geht endlich zwanglos in-place.Marthog schrieb:
ist und aus dem man ein Sortiernetz bauen kann.
Ähm, dafür würde ich ihn jetzt nicht gleich nehmen.
Ich nahm ihn, weil die Liste beim Laden schon sortiert war und bis zum Speichern meistens keine und selten mal bis zu vielleicht 10 Datensätze verändert wurden.
-
Ich mag Bubblesort!
Wenn man Kenntnise über die zu sortierenden Daten hat, ist der (ausm Bauch heraus) auch glaube ich nicht schlecht.
Z.B. viele vorsortierte Daten in den ersten 99% und das letzte 1% mit neuen, unsortierten Daten oder sowas.
Oder generell vorsortiert und dann von beiden Seiten bubbeln und so.
Habs aber noch nie gebraucht.