bei quicksort solltest du das element mit dem verglichen wird (bei dir der mittelwert) in konstanter zeit berechnen (bei dir lineare zeit).

üblicherweise nimmt man einfach den ersten wert und vergleicht die übrigen mit diesem.
oder besser:
man nimmt den ersten, den letzten und einen wert aus der mitte. berechnet von diesen drei werten den mittleren, und verwendet diesen zum vergleichen. oder
oder auch gut:
man nimmt nicht den ersten sondern einen zufälligen wert aus dem feld

dann sollte man im wesentlichen ohne zusätzlichen speicherbedarf auskommen und nicht ne menge hilfsfelder anlegen. das geht alles im ursprünglichen feld!

du hast also noch einiges zu tun, um quicksort zu bekommen.