Ich habe das aus meinem Schulbuch, wo es auch als Quicksort beschrieben wurde

Ja, zog es auch schon vorsichtig zurück. Das Pivotelement läßt sich meinetwegen auch aus der Mitte entnehmen / gewinnen.
Die Prozedur ruft sich immer und immer wieder selbst auf, anstatt daß sich dieses Vorgehen irgendwann beendet. Deshalb ist der Stack irgendwann erschöpft.
j muß sich im Verlaufe der Aufrufe immer mehr 0, i immer mehr 999 annähern. Tut es das? Höchstwahrscheinlich nicht.
Edit: nimm mal statt
Mitte:=Zahl[(0+999) div 2];
besser
Mitte:= (i+j) div 2;
(und nicht "Zahl[(i+j)"!)