マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

画期的なソートアルゴリズム: TeXsort

一昨日の記事で出題した問題のうち、一番難しいと思うのは最後のリストのソートである。ソート(整列)は実際の LaTeX パッケージの開発においても必要性のある処理だと思われる。*1しかし、バブルソート等の非常に単純なアルゴリズムでも、実行・展開の制御を身につけていないと TeX で実装するのは極めて難しい。

だがしかし!

諸君!オレは天才かもしれない。このソートアルゴリズムをみてくれ。こいつをどう思う?

\documentclass{article}
\makeatletter
\def\TeXsort#1{%
  \leavevmode \@tempdima=2em
  \@for\xx@x:=#1\do{\rlap{\kern\xx@x\@tempdima\xx@x}}}
\makeatother
\begin{document}
\TeXsort{7,12,2,6,3,11,5,9}
\end{document}


なん…だと…。こいつ、動くぞ!

っておい!リストに 50 とか 100 とかがあると紙面からはみ出してしまうのかよ!

(訳文の元ネタ:http://d.hatena.ne.jp/gfx/20110519/1305810786

*1:少なくとも私は、TeX 上のプログラミングで二分木を使おうと思ったことは一度もない。