制御構造を『写経』する
お疲れ様です。Y研究員です。けったいなタイトルですが制御構造とはIf-elseとか、そういうやつです。条件をつけて分岐させたり、ループを作って命令の順番を制御するための要素です。自分も調べて正式な名前を知りました。
型の章は地味でしたが、この章にきて途端にプログラミングらしくなりました。最初の例は二分探索です。配列の中に要素があるか、半分に切りながら見ていくアルゴリズムです。デバッグのテクニックでも、用語として使いました。ソースコード内だけでなくGitでバグを仕込んだコミットを探すときに使ってる人もいました。コマンドは`git bisect`です。
参考までに二分探索のソースコードもつけておきます。
/*binarysearch: find x in v[0] <= v[1] .... <= v[n-1] */
int binarysearch(int x, int v[], int n)
{
int low, mid, high;
low = 0;
high = n - 1;
while (low <= high)
{
mid = (low + high) / 2;
if (x < v[mid])
high = mid - 1;
else if (x > v[mid])
low = mid + 1;
else
return mid; // found match
}
return -1; // no match
}
この二分探索は、覚えるとプログラミングが書けるようになる『般若C経』に取り入れたいと思いました。というのも最近、写経に値するプログラミングを議論する機会があり、一人の答えはアルゴリズムとデータ構造でした。たしかに基本のキで、繰り返し書いて覚えると基礎力はつきそうです。
写真はジョージアの川です。たしか首都トビリシから近い古都で、山の上の教会から撮りました。分岐やflowということで2つの川の合流点です。2つの川で水の色が全然違い面白かったです。
では!
般若心経の写経とプログラムの『写経』に関する記事はこちらからどうぞ。
いいなと思ったら応援しよう!
無料のプログラミングクラブCoderDojoを運営するにあたり寄付を受け付けています。お金は会場費・Wifiの費用・教科書に使用します。