再帰的にするようです。詳しくは分かりませんが、大体の事であれば何とか、言えるかもしれません。
真ん中名の要素からキーを作ります。キーがその真ん中より大きいか小さいかで、二つのグループに
分けます。
その各グループで同じく繰り返します。その辺が再帰的になってるんですが、もっとデータ量を増やして
デバックで追ってみることも必要でしょうかね。
でもこれだけのソートではいくら高速と言っても、面白くないですね。Rubyの場合だったら一行で書ける
でしょうからね。実際はレコードになっていて、そのキーでソートしたらば、であればいくらかはソートの結果
が有効でしょう。
試しにやって見ました。一行でsortは終わります。"(-""-)"