quicksort Problem
-
Wir haben von der Schule die Aufgabe bekommen den Quicksort Algorithmus in c++ zu implementieren, leider habe ich ein kleines Problem damit.. seht euch folgendes an ->
unsortiert:
41.67.34.0.69.24.78.58.62.64.nach dem sortieren:
0.34.24.41.58.62.64.67.69.78.als ich noch keine Zeiger benutzt habe hat es funktioniert, aber jetzt (mit Zeiger) funktioniert es nicht mehr
hier der Code
void qsort(int *arr, int lo, int hi) { int *l = &arr[lo], *r = &arr[hi]; int *p = &arr[(lo+hi)/2]; while (l <= r) { while (*l < *p) l++; while (*r > *p) r--; if (l <= r) { swap(*l, *r); l++; r--; } } if (lo < r-arr) qsort(arr, lo, r-arr); if (l-arr < hi) qsort(arr, l-arr, hi); } // Aufruf mit: qsort(arr, 0, MAX_SIZE-1);sieht jemand den Fehler?
-
Laß Dir doch mal jeweils am Anfang der Funktion ausgeben, was er sortiert und welches Pivot-Element er verwendet. Vielleicht kannst dadran was sehen.