Hi Leute,
ein Kumpel und ich ich haben die Aufgabe, ein Array zu erstellen mit zufälligen Zahlen und dieses dann mit dem Shakersort sortieren zu lassen. Beim compilieren kommen allerdings 2 Fehler heraus, wir vermuten, dass diese mit der Deklaration der Klasse zusammenhängen, doch wissen einfach keine Lösung dafür. Wir sind beide noch Anfänger, was das Programmieren mit Java angeht.
Villeicht kann uns ja Jemand weiterhelfen, vielen Dank schonmal im Voraus
.
ein Kumpel und ich ich haben die Aufgabe, ein Array zu erstellen mit zufälligen Zahlen und dieses dann mit dem Shakersort sortieren zu lassen. Beim compilieren kommen allerdings 2 Fehler heraus, wir vermuten, dass diese mit der Deklaration der Klasse zusammenhängen, doch wissen einfach keine Lösung dafür. Wir sind beide noch Anfänger, was das Programmieren mit Java angeht.
Villeicht kann uns ja Jemand weiterhelfen, vielen Dank schonmal im Voraus
Java:
import java.util.Random;
public class Shakersort { // öffentliche klasse => Deklarieren des Shakersort
public int[] intArr = z[p]; // public, damit es auch im Nachfolgenden Teil verwendet werden kann
int k; // int Variable, die mit dem Array oben verknüpft ist
public void Zufallszahlen (String[] args) { // öffentliche Deklaration der Zufallszahlen, damit diese auch unten verwendet werden können
int[] z = new int[10]; // neues Array mit Feldgröße 10
for (int p = 0; p < 10; p++) { // Zählvariable p, gleichzeitig auch Begrenzung
z[p] = (int)(Math.random() * 100 + 1); // Zufallszahlen erzeugen
}
}
public int[] sort() { // Sortierfunktion wird deklariert und später beschrieben
int i = 0, l = intArr.length; // weiter int Variablen, i als Zählvariable und l als Begrenzung, bzw. länge des obigen Arrays
while (i < l) { // i zählt solange hoch, bis es noch kleiner als l ist
shaker1(i, l); // shaker 1 wird erstellt, l zählt runter
l--;
shaker2(i, l); // shaker 2 wird erstellt und läuft gegen shaker 1, da i hochgezählt wird
i++;
}
return intArr; // Anweisung, um das Array weiter zu benutzen, auch außerhalb der Deklaration "sort"
}
private void shaker1(int i, int l) { // untere Klasse um shaker 1 zu konkretisieren, bzw. ihm eine Funktion zu geben
for (int j = i; j < l - 1; j++) { // j als neue Zählvariable, da i nichtg nocheinmal verwendet werden darf, allerdings meint ja dasselbe wie i, j wird hochgezählt
if (intArr[j] > intArr[j + 1]) { ´ // if-Bedingung, dass das Array in Abhängigkeit von j größer sein muss, als das Array von j+1
k = intArr[j]; // k wird ein Wert zugewiesen
intArr[j] = intArr[j + 1]; // Gleichsetzen der Arrayabhängigkeiten
intArr[j + 1] = k; // Ersetzen der einen Abhängigkeit durch die oben zugeführte Variable k
}
}
}
private void shaker2(int i, int l) { // untere Klasse, dieses mal um shaker 2 zu konkretisieren, bzw. diesem eine Funktion zu geben
for (int j = l - 1; j >= i; j--) { // wie oben, jedoch wird dieses mal runtergezählt, also von der anderen Richtung durchlaufen
if (intArr[j] > intArr[j + 1]) { // if-Bedingung, dass das Array in Abhängigkeit von j größer sein muss, als das Array von j+1
k = intArr[j]; // k wird ein Wert zugewiesen
intArr[j] = intArr[j + 1]; // Gleichsetzen der Arrayabhängigkeiten
intArr[j + 1] = k; // Ersetzen der einen Abhängigkeit durch die oben zugeführte Variable k, selbes Vorgehen wie oben, jedoch von anderer Seite
}
}
}
public static void main(String[] args) { // jetzt erst Hauptmethode, um die obigen Ereignisse anzuzeugen
Shakersort ss = new Shakersort(); // neuer Shakersort
int[] arr = ss.sort(); // neues int abhängigkeits Array erstellent
for (int i = 0; i < arr.length; i++) { // for-Schleife, um hochzuzählen, bzw. um Nummern vor die Sortierten Zahlen zu schreiben
System.out.println(i + 1 + ": " + arr[i]); // Ausgabe der Ergebnisse, sortiert und nummeriert
}
}
}
Zuletzt bearbeitet von einem Moderator: