実際にプログラムを考えてみると
call-returnを使うわけですから
順番は先にauto変数の配列に入れてしまって
どこにいるかをauto変数で記憶しておいてから
ソートすれば問題ないですね。
数字の配列はstaticですね。
比較して入れ替えが発生したら
さらにcallで新たなヒープを作成すれば
1つのプログラムを共用できます。
ただしこれはあくまでcall-returnが使える環境でのみ出来て
使えない環境(たとえばマシン語)では考えを変えないと実現出来ません。
push-popだけでどこまで使えるか
又、ヒープをアドレスに展開するやり方とか
まだ詰められません。