あああ
環境
Windows7 Professional 64bit版
Core i7-2600 @ 3.40GHz
単位は秒 それぞれ sudoku* q_kawai.txt -1 の実行時間を表しています
gcc 3.4.5 gcc 4.7.2 VC++2010
sudoku0 1960.5 1190.5 1247.8 C++でできるだけ簡潔に書いたもの
sudoku1 1628.8 1052.2 1249.7 常識的な範囲で最適化したもの
sudoku2 855.7 710.3 682.5 さらにループ展開したもの
sudoku3 728.3 674.1 536.3 switch-caseの乱用
sudoku4 327.2 count()等をアセンブラ化
最適化オプションは次の通りです
gcc 3.4.5 : -O2 のみ(-O3だとかえって遅くなったので) 32bitコードを生成させています
gcc 4.7.2 : -O3 -mtune=corei7 -march=corei7 これも32bitコードを生成させています(ミスです)
VC++2010 : /Ox /Oi /Ot /Oy /favor:INTEL64 /GA (正確なバージョン: 16.00.40219.01 for x64)