G
Guest
Gast
Ich grüße euch alle. Ich bin neu hier und stehe vor einem folgenden Problem. Ich möchte das bei einem Bubblesort nachher anzeigt wird (durch einfaches system output) wie oft getauscht wurde. Doch komme ich einfach nicht drauf wie ich es zu schreiben habe damit er mir anzeigt wie oft getauscht wurde
hier mein Beispielcode:
nun soll es mir bei der Ausgabe neben den sortierten Zahlen noch anzeigen wie oft getauscht wurde z.B. so das in der Konsole dann steht:
Es wurde x-mal getauscht
Danke schonmal im vorraus für jegliche hints [/code]
hier mein Beispielcode:
Code:
class Sortierer {
protected int[] feld ;
protected int n;
public Sortierer (int n){
this.feld = new int[n];
}
public void zufallsbelegung(){
for (int n=0; n<=100; n++) { //solange felder anlegen bis 100 erstellt wurden
this.feld[n] = (int)MatheHelfer.zufallszahl(feld.length); //in jedem feld zufallszahlen generieren
}
}
public void aufsteigend(){
for (int n=0; n<=100; n++) {
this.feld[n] = n;
}
}
public void absteigend(){
int wert = 100;
for (int n=0; n<=100; n++) {
this.feld[n] = wert;
wert--;
}
}
public void vertausche(int a,int b){
int ablage = feld[a];
feld[a] = feld[b]; // überschreiben von feld[a] mit feld[b]
feld[b] = ablage; // die jeweiligen felder werden hierbei vertauscht
}
public void sort(){
boolean fertig = false;
int i = 0;
while (!fertig){
fertig = true;
// for (int n=0; n<100; n++){ //schleife für jeden durchlauf
for (int o=0; o<feld.length-1; o++){ //schleife für jedes zahlenpaar
if (feld[o]>feld[o+1]) { // vergleich werte < oder > um sortierrichtung zu setzen
vertausche(o, o+1); // vertausche
fertig = false;
}
}
i++;
}
}
public void ausgabe (){
for (int n=0; n<=100; n++){
System.out.println(feld[n]);
}
}
public static void main(String[] args) {
Sortierer s = new Sortierer(101); //anlegen der datenfelder
s.zufallsbelegung(); //arrays mit zufallszahlen belegt
s.aufsteigend(); //arrays mit aufsteigenden zahlen belegt
s.absteigend(); //arrays mit absteigenden zahlen belegt
s.sort();
s.ausgabe();
}
}
nun soll es mir bei der Ausgabe neben den sortierten Zahlen noch anzeigen wie oft getauscht wurde z.B. so das in der Konsole dann steht:
Es wurde x-mal getauscht
Danke schonmal im vorraus für jegliche hints [/code]