Hey, ich habe aktuell folgende Aufgabe in Java:
"Durchlaufen sie eine Reihung, suchen sie das größte Element und tauschen sie dieses mit dem letzten Element. Die Reihung wird nun wieder durchlaufen (nur bis zum vorletzten Element), das größte Element gesucht und mit dem vorletzten getauscht usw."
Ich habe schon hinbekommen, dass die größte Zahl gefunden wird, jedoch klappt das Sortieren noch nicht zu 100%, da vereinzelte Zahlen nicht an der richtigen Stelle sind und ich weiß nicht warum.
Danke für die Hilfe im vorraus.
"Durchlaufen sie eine Reihung, suchen sie das größte Element und tauschen sie dieses mit dem letzten Element. Die Reihung wird nun wieder durchlaufen (nur bis zum vorletzten Element), das größte Element gesucht und mit dem vorletzten getauscht usw."
Ich habe schon hinbekommen, dass die größte Zahl gefunden wird, jedoch klappt das Sortieren noch nicht zu 100%, da vereinzelte Zahlen nicht an der richtigen Stelle sind und ich weiß nicht warum.
Java:
public class ZweiteSortierung extends Application {
// Anfang Attribute
private Label lAusgabe = new Label();
private Button bLos = new Button();
int[] Zufallsreihung = new int[50];
// Ende Attribute
public void start(Stage primaryStage) {
Pane root = new Pane();
Scene scene = new Scene(root, 1309, 97);
// Anfang Komponenten
lAusgabe.setLayoutX(8);
lAusgabe.setLayoutY(8);
lAusgabe.setPrefHeight(25);
lAusgabe.setPrefWidth(1281);
lAusgabe.setText("Zufallsreihung");
lAusgabe.setTextAlignment(TextAlignment.JUSTIFY);
root.getChildren().add(lAusgabe);
bLos.setLayoutX(8);
bLos.setLayoutY(40);
bLos.setPrefHeight(33);
bLos.setPrefWidth(609);
bLos.setOnAction(
(event) -> {bLos_Action(event);}
);
bLos.setText("Los");
root.getChildren().add(bLos);
// Ende Komponenten
primaryStage.setOnCloseRequest(e -> System.exit(0));
primaryStage.setTitle("Zufallsreihung");
primaryStage.setScene(scene);
primaryStage.show();
} // end of public Sortierung
// Anfang Methoden
public void zufall(){
int zufallszahl;
int l = Zufallsreihung.length;
for (int i = 0; i < l; i++) {
zufallszahl = (int)(Math.random()*99+1);
Zufallsreihung[i] = zufallszahl;
}
}
public void ausgabe(int[] R){
int l = R.length;
String Ausgabe = "" + R[0];
for (int i = 1; i < l; i++) {
Ausgabe = Ausgabe + " - " + R[i];
}
lAusgabe.setText(Ausgabe);
}
public int Groesste(int R[], int ende){
int stelle = 0;
int gzahl = R[0];
for (int i = 0; i < ende; i++) {
if (R[i] > gzahl) {
gzahl = R[i];
stelle = i;
} // end of if
}
return stelle;
}
public void SelectionSort(int[] R){
for (int i = 0; i < R.length-1; i++) {
int stelle = Groesste(R, R.length-i-1);
int neueStelle = R[stelle];
int neueLaenge = R[R.length-i-1];
R[R.length-i-1] = neueStelle;
R[stelle] = neueLaenge;
}
}
public static void main(String[] args) {
launch(args);
} // end of main
public void bLos_Action(Event evt) {
// TODO hier Quelltext einfügen
zufall();
SelectionSort(Zufallsreihung);
ausgabe(Zufallsreihung);
} // end of bLos_Action
// Ende Methoden
} // end of class Sortierung