Hallo,
ich probiere mich gerade an Quicksort. Leider funktioniert es nicht:
edit: Ich mache den kompletten Code erstmal raus. Eigentlich muss ich glaube ich nur eins wissen:
if(switchElements(records, tmp, i, store).equals(pivot)) pivotPos = i;
Diese Bedingung wird niemals true. Woran liegt das?
switchElements funktioniert korrekt. Es vertauscht die Elemente tmp und das Element an position records.getElementAt(i);
und liefer dieses Element zurück. Das kann potentiell das pivot-Element sein. Kann man diese Elemente so nicht miteinander vergleichen?
ich probiere mich gerade an Quicksort. Leider funktioniert es nicht:
Code:
private static int[] arraySort(SortArray records, String[] pivot, int start, int end, int store, int pivotPos) {
String[] tmp;
for(int i = start; i <= end; i++) {
tmp = records.getElementAt(i);
if(min(records, pivot, tmp) == tmp) {
// Store erhöhen
store++;
// Elemente vertauschen, eventuell pivotpos ändern
if(switchElements(records, tmp, i, store).equals(pivot)) pivotPos = i;
}
}
return new int[]{store, pivotPos};
}
edit: Ich mache den kompletten Code erstmal raus. Eigentlich muss ich glaube ich nur eins wissen:
if(switchElements(records, tmp, i, store).equals(pivot)) pivotPos = i;
Diese Bedingung wird niemals true. Woran liegt das?
switchElements funktioniert korrekt. Es vertauscht die Elemente tmp und das Element an position records.getElementAt(i);
und liefer dieses Element zurück. Das kann potentiell das pivot-Element sein. Kann man diese Elemente so nicht miteinander vergleichen?