gcc の qsort が非再帰なのは単に速度を重視した結果じゃないの?
速度も含めて、再帰と非再帰でそんなに大騒ぎするほどの違いがあるかなあ。