Mathematics
Examination
Test
Archives
【1】 次の情報技術に関する文章を読んで,以下の問い(1)〜(3)に答えなさい.
問題を解くための手順を一般にアルゴリズムと呼ぶ.アルゴリズムという概念自体は,計算機とは無関係に成立するが,普通は計算機を使って問題の解を求めるための手順を指す.計算機科学における基本的な問題にソート(整列)の問題がある.例えば,異なる数の列を昇順(任意の隣り合う個の数で,右の数が左の数より必ず大きい)にソートするといったものである.ソートの問題を解くアルゴリズムは,入力列としてが与えられると,を出力する手順である.ソートの問題については,その必要性の高さから多くの優れたアルゴリズムが開発され,現在でも様々なアプリケーションで利用されている.
一つの問題に対して,複数のアルゴリズムが存在する場合,いずれを用いるかの判断基準で重要なのは効率である.多くの場合,問題のサイズ(扱うデータの数.上のソートの例では入力列の数の個数)を大きくした時の,解を求めるまでの実行時間の増大の仕方で表す場合が多い.例として,二つのソートのアルゴリズムを比較しようとする).一つは,挿入ソートと呼ばれ,個のデータを時間をかけてソートし,もう一方は,マージソートと呼ばれ,時間かけてソートするとわかっている.ここで,とは,に依存しない定数で,普通は,である.実行時間に対して定数係数が与える影響の度合いは,が増えるごとに小さくなる.したがって,問題のサイズが増えると,前者の計算時間はに比例し,後者はに比例して増大すると言える.ここで,がに比べてずっと小さいことは重要である(例えば,のとき,は,おおよそが万のとき,は,おおよそである).通常,問題のサイズが小さい時は,挿入ソートの方がマージソートより速いがの効果),どれだけがより小さくとも,挿入ソートとマージソートの実行時間が逆転するの値が存在する.
(1) 文章中のソートの入力列を昇順にソートするとして,出力を得るまでの具体的な手順を文章で書きなさい.ただし,数の列の最も左の位置にある数を,番の数,以下右に,番の数,番の数と呼ぶとする.また,数の比較や位置の交換は一度に個の数の間でしかできないとする.
(2) 問題のサイズの入力列に対して,ある計算機上で,挿入ソートの実行には時間かかり,マージソートの実行には時間かかるとわかっているとする.この計算機では,問題のサイズがいくつ以上なら,マージソートの方が速いか求めなさい.計算過程も示すこと.
(3) アルゴリズムの効率を評価する指標として,上の文章にあるように解を求めるまでの計算時間を入力サイズの関数で表すことが多い.その理由を考えて,簡潔に述べなさい.