重要度:B 論点:アルゴリズムとプログラミング
問16:同じ問題を解くアルゴリズムであっても、選び方によって処理時間や使用するメモリの量は大きく異なることがある。
解答を見る
○ 例えば整列では、バブルソートとクイックソートで平均の計算量が大きく異なる。処理時間とメモリ使用量はトレードオフになることもあり、条件に応じた選択が重要である。
重要度:C 論点:アルゴリズムとプログラミング
問17:適切なハッシュ関数と十分な格納領域を用意し、負荷率を適切に保てば、ハッシュ法による探索は平均的にはデータ件数が増えてもほぼ一定の時間で行える。
解答を見る
○ キーから格納位置を直接計算するため、ハッシュ値が適切に分散して負荷率が管理されていれば、探索の平均・期待計算量はほぼ一定になる。ただし、衝突が集中する最悪の場合には探索時間がデータ件数に比例することがある。
重要度:B 論点:アルゴリズムとプログラミング
問18:クイックソートは、どのようなデータの並びに対しても、常に他の整列アルゴリズムより速く整列を完了できる。
解答を見る
× クイックソートの速さは平均的な場合の話であり、基準値の選び方とデータの並びによっては分割が偏り、計算量が件数の2乗に比例する最悪の場合が生じ得る。
重要度:A 論点:アルゴリズムとプログラミング
問19:順次、選択、繰返しの3つの基本制御構造を組み合わせることで、どのようなアルゴリズムの処理の流れも表現できる。
解答を見る
○ この考え方は構造化プログラミングの基礎であり、複雑な処理も3つの構造の組合せと入れ子で表現できる。見通しの良いプログラムの作成につながる。
重要度:C 論点:アルゴリズムとプログラミング
問20:プログラム中の変数の名前は短いほど実行時の処理が速くなるため、性能を重視する場合は1文字の変数名を使うべきである。
解答を見る
× 多くの言語処理系では、変数名は翻訳時に内部的な識別情報へ変換されるため、変数名を1文字へ短縮しても実行性能が実用上向上するとはいえない。処理系によるごく小さな差を期待するより、意味の分かる名前を用いて可読性と保守性を高めるべきである。

コメント