Vielleicht solltest du dich an den in Wikipedia beschriebenen Pseudo-Code halten. Ich habe einige Unterschiede zu deinem feststellen können.
zB.
while Zahl[i]<Mitte do ...
bzw.
while Mitte<Zahl[j] do ...
im wiki wird zusätzlich geprüft ob (i < rechts) bzw (j > links)
außerdem fallen die beiden Zeilen
Inc(i);
und
Dec(j);
in der
if i<=j then ...
Bedingung weg, die übrigens
if i < j then ...
lauten sollte.
https://de.wikipedia.org/wiki/Quicksort#Pseudocode
beste Grüße,
Symbroson
Alex F.