先日、知人の大学生にソートプログラムの課題についての相談を受けました。ASCIIテキストのみのワードリストファイルを入力し、ソートして出力するという簡単なものだったので、そこそこ早くてかつコードがシンプルなコムソート(comb sort)でコーディングしてみました。
大学の課題ということで、ひょっとしてstring.hすら使えないんじゃないかな、と思い strlen()、strcpy()、strcmp()も自前で準備してみました。これらの文字列用の関数は ASCII 文字列に対しては動いてはいるものの、変なものを食わせたらすぐにお腹を壊すと思います。 使い方は、標準入力にワードリストを食わせてやるか、オプションにリストのパスを指定します。
gcc -o csort csort.c
./csort < wordlist.dic
abc
bbb
dcc
# もしくは ./csort wordlist.dic