第5回放送授業 5.5 再帰呼び出し 再帰呼び出し(recursive call) int factorial(int x) { if (x == 1) { # x が 1 ならば 1 を返す return 1; } else { # それ以外は x*(x-1)!を返す return x * factorial(x - 1); } } 6 アルゴリズム 6.1 アルゴリズムとは アルゴリズム • algorithm • プログラムの手順 構成、流れ 処理のしかた 書き方、考え方 良いプログラムとは • • • • 計算速度が速いこと メモリーをあまり使わないこと 考え方がすっきりしていること 読みやすいこと 6.2 よいアルゴリズムの例 与えられた数が素数か • 与えられた数Nの一つ下N-1から順に 、その数で割ってみる • 2、3、4、…と順に小さい数から割っ てみる • √N までで停止する • 下から順に素数を拾い出しながら、素 数だけで割ってみる 6.3 ユーザから見た よいアルゴリズム • • • • • 最大計算速度が速いこと 平均計算速度が速いこと メモリーをあまり使わないこと 操作性がよいこと 可能ならばマニュアルを読まなくて すむこと 6.4 プログラムの保守 • 変数名をわかりやすくする • コメントを多くつける readme • 構造化プログラム • ブロック化とサブルーチン 6.5 プロファイラ • プロファイリングとプロファイラ • プログラム中に注目点を入れておくと 注目点と注目点の間の計算時間を表 示してくれる
© Copyright 2024 ExpyDoc