X
xSeppelx
Gast
Hi,
erstmal vorne weg ich will nicht das ihr meine Hausaufgaben macht, d.h. Tipps oder Hilfestellungen würde ich bevorzugen.
Meine Aufgabe ist es den Quicksort Algorithmus in Java zu programmieren.
Ich habe mich schon über ihn informiert und mit der Programmierung begonnen, ich meine sogar ich wäre fertig, aber ich bekomme eine Fehlermeldung:
ERROR java.lang.reflect.InvocationTargetException: null
Ich zeige euch erst mal meinen Code:
[Java]
public void sort() {
int length = this.array.length;
try{
quicksort(0, length-1);//Quicksort aufrufen, linkes Element und Rechtes werden übergeben.
}
catch(){
}
//Programmieren
}
public void quicksort(int leftlow, int righthigh){//Warum Parameter? Weil damit die Rekursion einfacher zu realisieren ist.
int x = leftlow;//Links und Rechts festlegen
int y = righthigh;
int m = this.array[(leftlow+righthigh)/2]; // Mittelpunkt festelgen, weil int gibt es keine Krumme Zahl und damit auch immer ein Ergebnis!
//Im Prinzip wird hier der Array aufgeteilt und dann sortiert.
while (x<=y)
{
while (this.array[y]<x) y++;
while (this.array[y]>x) y--;
if (x<=y)
{
swap(x, y);
x++; y--;
}
}
// Rekursion
if (leftlow<y) quicksort(leftlow, y);
if (x<righthigh) quicksort(x, righthigh);
}
[/Java]
Vielleicht könntet ihr erst mal schauen ob irgendwelche größeren Mängel vorhanden sind.
erstmal vorne weg ich will nicht das ihr meine Hausaufgaben macht, d.h. Tipps oder Hilfestellungen würde ich bevorzugen.
Meine Aufgabe ist es den Quicksort Algorithmus in Java zu programmieren.
Ich habe mich schon über ihn informiert und mit der Programmierung begonnen, ich meine sogar ich wäre fertig, aber ich bekomme eine Fehlermeldung:
ERROR java.lang.reflect.InvocationTargetException: null
Ich zeige euch erst mal meinen Code:
[Java]
public void sort() {
int length = this.array.length;
try{
quicksort(0, length-1);//Quicksort aufrufen, linkes Element und Rechtes werden übergeben.
}
catch(){
}
//Programmieren
}
public void quicksort(int leftlow, int righthigh){//Warum Parameter? Weil damit die Rekursion einfacher zu realisieren ist.
int x = leftlow;//Links und Rechts festlegen
int y = righthigh;
int m = this.array[(leftlow+righthigh)/2]; // Mittelpunkt festelgen, weil int gibt es keine Krumme Zahl und damit auch immer ein Ergebnis!
//Im Prinzip wird hier der Array aufgeteilt und dann sortiert.
while (x<=y)
{
while (this.array[y]<x) y++;
while (this.array[y]>x) y--;
if (x<=y)
{
swap(x, y);
x++; y--;
}
}
// Rekursion
if (leftlow<y) quicksort(leftlow, y);
if (x<righthigh) quicksort(x, righthigh);
}
[/Java]
Vielleicht könntet ihr erst mal schauen ob irgendwelche größeren Mängel vorhanden sind.