アルゴリズム体操そのB

プログラミングの宝箱 アルゴリズムとデータ構造 (C magazine)

プログラミングの宝箱 アルゴリズムとデータ構造 (C magazine)

動的計画法、終了。


プログラミングの教科書でループ用の変数名が、i、j、kになっている場合には、意味を持った名前に書き換えるだけで、コードがだいぶん理解しやすくなる。
例えば、


for ( i = 0; i < N; i++ )
{
for ( j = 0; j < SEPARATOR + 1; j++ )
{
solutions[ i ][ j ]...
...
}
}
よりは、

for ( array_index = 0; array_index < ARRAY_MAX; array_index++ )
{
for ( num_of_separator = 0; num_of_separator < MAX_NUM_OF_SEPARATOR + 1; num_of_separator++ )
{
solutions[ array_index ][ num_of_separator ]...
...
}
}
これは、以前職場で一緒だったすぱーはかー氏にも、きつく言われたことである。

もちろんタイプしなくてはならない量は増えるのだが、コーディングの時間中、タイピングの時間がほとんどなんてことは、絶対にないだろう、つまり無視できる作業量だ。
一方で、コードの可読性は飛躍的に上がる。
また、タイポでiとjが入れ替わってしまったりといった、初歩的だがデバッグしにくいバグが起きなくなる。


さて、次章でいよいよこの本も修了である。
間に4ヶ月ほど休憩が挟まったことを除けば、既に3ヶ月以上も取り組んでいるのね。