Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich sehe hier nur eine Methode - dazu noch statisch (ich nehme an das hast du nur so eingefügt weil du von der main()-Methode die so nicht aufrufen konntest Du kannst nicht die main-Methode mit irgendeiner Methode "zusammentun", das macht einfach kein Sinn - oder habe ich dich hier irgendwie falsch verstanden ?.Wenn ich dich aber richtig verstanden habe, dann solltest du das hier zumindest umschreiben:
Java:
public class BubbleSort {
public void sortiere(int[] x) {
boolean unsortiert=true;
int tausch;
while (unsortiert){
unsortiert = false;
for (int i=0; i < x.length-1; i++)
if (x[i] > x[i+1]) {
tausch = x[i];
x[i] = x[i+1];
x[i+1] = tausch;
unsortiert = true;
}
}
}
public static void main(String[] args) {
BubbleSort bubSort = new BubbleSort() ;
int[] zahl = {0,9,4};
bubSort.sortiere(zahl);
for (int z: zahl)
System.out.print(z+" ");
}
}
Egal ob das alles hir Sinn oder Unsinn ist, so sollte es aussehen. Außerdem gibt es zum Sortieren schon vordefinierte Klassen. Statische Methoden sind was anderes und werden auch anderes benutzt, das solltest du so nicht machen.
also den Post von RySa versteh ich gar nicht :autsch:...
Ich seh das zwei Methoden... Die main und sortiere. Und wieso sollte ich die main nicht mit einer anderen Methode zusammen legen können? Was nicht geht ist, dass ich die main Methode weg lasse.
Java:
public class BubbleSort {
public static void main(String[] args) {
int[] zahl = {0,9,4};
boolean unsortiert=true;
int tausch;
while (unsortiert){
unsortiert = false;
for (int i=0; i < zahl.length-1; i++)
if (zahl[i] > zahl[i+1]) {
tausch = zahl[i];
zahl[i] = zahl[i+1];
zahl[i+1] = tausch;
unsortiert = true;
}
}
for (int i=0; i<zahl.length; i++)
System.out.print(zahl[i]+" ");
}
}
Grundsätzlich Funktioniert es wie SlaterB gesagt hat. Hier also nochmal eine Step-by-Step Erklärung:
1.zu entfernenden Methodeninhalt (in dem fall von sortiere) kopieren und die Methode löschen
2.Aufrufe zu der gelöschten Methode durch den kopierten Code aus der gelöschten Methode ersetzen
3.Variablennamen anpassen (in dem Fall musste x zu zahl umbenannt werden)
Ob der Code oder das zusammenführen so Sinn macht habe ich mir nicht angeschaut ...
Dann fang ich eben von Anfang an...die main() Methode dient dazu, das Program zu starten. Da werden ggf. benötigte Objekte erstellt, und eventuell andere Methoden aufgerufen. Main Methode dient keinesfalls dazu, da irgendwelche rechenoperationen durchzuführen. Deswegen sagte ich dass ich da keine 2 Methoden sehe, da nur eine wirklich von dir stammt (die main-Methode ist ein muss in jedem ausführbarem Programm). Das was du hier jetzt gemacht hast ist ein völliger quatsch, weil du diese operation jetzt nirgendswie wieder aufrufen kannst (naja vlt. wenn du irgendwie die main wieder aufrufst). Dann ist schon der erste Code den du gepostet hast besser als das was jetzt bei rauskam. Mach es doch einfach so wie ich geschrieben habe.
Gruß