KillerB Geschrieben 23. Januar 2012 Geschrieben 23. Januar 2012 Hallo wir sollen einen Algorithmus programmieren zum Thema Bubblesort (Sortieren durch auswahl) ALso das aufwendige ist hier die Auswahl des jeweils kleinsten Elements, leicht hingegen das Einfügen. Ich habe bereits angefangen wir arbeiten derzeit mit dem Programm BlueJ! Ähnelt sehr Java etc public class SORT { public SORT() { } public void bubble () { int max=50; int [] feld = new int [10]; for (int i=1; i<10; i++) { feld[i]= (int) (100*Math.random()); } for (int i=1; i<10; i++) { System.out.println("Zufällige Zahlen="+feld[i]); } for (int i=1; i<10; i++) { if (feld[i]<max) { max=feld[i]; } } System.out.println("Die kleinste Zahl ist: " + max); } } ALso ich kann bereits die kleinste Zahl von Zufallszahlen bestimmen, aber wie mache ich weiter wie sortiere ich die Zahlen nun? Zitieren
Servior Geschrieben 23. Januar 2012 Geschrieben 23. Januar 2012 Bubblesort Letztendlich musst du zwei Elemente deines Arrays vergleichen und ggf. vertauschen. Das ganze machst du solange bis alle Zahlen in der richtigen Reihenfolge sind. Zitieren
KillerB Geschrieben 23. Januar 2012 Autor Geschrieben 23. Januar 2012 Das ist mir schon klar wie der Algorithmus abläuft nur mein Problem ist wie ich es ins Programm umsetzen kann. Gibt es einen speziellen Befehl mit den man Zahlen vertauscht ?? Zitieren
Servior Geschrieben 23. Januar 2012 Geschrieben 23. Januar 2012 temp = feld[i] feld[i] = feld[i+1] feld[i+1] = temp Das wäre eine Möglichkeit. Zitieren
KillerB Geschrieben 23. Januar 2012 Autor Geschrieben 23. Januar 2012 Was soll denn temp sein Oo Zitieren
Servior Geschrieben 23. Januar 2012 Geschrieben 23. Januar 2012 Temp wäre in dem Fall eine Hilfsvariable vom gleichen Typ wie Feld. Zitieren
KillerB Geschrieben 24. Januar 2012 Autor Geschrieben 24. Januar 2012 Hey kennst du dich einigermaßen mit dem Programm BlueJ aus, oder allgemein mit Java ähnelt ja alles sehr Und könntest du mir vielleicht helfen ich habe auch schon dran bisschen gearbeitet, aber weiter komme ich auch nicht mehr public class SORT { public SORT() { } public void bubble () { int max=101; int [] feld2 = new int [10]; int [] feld = new int [10]; for (int i=1; i<10; i++) { feld[i]= (int) (100*Math.random()); } for (int i=1; i<10; i++) { System.out.println("Zufällige Zahlen="+feld[i]); } for (int i=1; i<10; i++) { if (feld[i]<max) { max=feld[i]; } } System.out.println("Die kleinste Zahl ist: " + max); feld2[0]=max; for (int i=0; i<10; i++) { System.out.println("Sortierte Zahlen="+feld[i]); } //System.out.println(feld2[0]); } } PS: könnt ihr mir bitte Ansätze geben wäre sehr nett und ich muss sie natürlich auch nachvollziehen können !! Zitieren
etreu Geschrieben 24. Januar 2012 Geschrieben 24. Januar 2012 prozedur bubbleSort( A : Liste sortierbarer Elemente ) n := Länge( A ) wiederhole vertauscht := falsch für jedes i von 1 bis n - 1 wiederhole falls A[ i ] > A[ i + 1 ] dann vertausche( A[ i ], A[ i + 1 ] ) vertauscht := wahr ende falls ende für n := n - 1 solange vertauscht und n > 1 prozedur ende Was verstehst du daran nicht? Zitieren
KillerB Geschrieben 24. Januar 2012 Autor Geschrieben 24. Januar 2012 Wie gesagt ich verstehe das Prinzip was dahinter steckt also ich habe schon auf einem Blatt praktiziert nur mein Problem ist es ja gerade, dass auf ein Programm zu übertragen Zitieren
Servior Geschrieben 24. Januar 2012 Geschrieben 24. Januar 2012 Dann erklär uns doch einmal wo genau du hängst. Kannst du die deutschen Begriffe nicht in die englische Bedeutung und deren Syntax einer Programmiersprache setzen? - Die Prozedur kannst du wie eine Funktion behandeln und wird bei deinem Programm erst einmal nicht benötigt. - Die Länge zählt in deinem Fall die Anzahl der Elemente deines Arrays. - Wiederhole steht in dem Fall für eine fußgesteuerte Schleife. - Vertauscht ist eine Hilfsvariable. - Für ist eine Zählschleife. - Falls bezeichnet eine Abfrage. - Vertausche steht für eine Funktion, diese kannst du weglassen und durch mein Beispiel oben ersetzen. - n ist eine Variable. Fang doch erst einmal an das in ein Programm zu übertragen, dann wird man dir auch sagen was du falsch gemacht hast. Dir das ganze vorzukauen führt zu keinem Erfolg. Aber wenn du unbedingt einen Anfang brauchst.. int n = feld.length(); Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.