km-trends

Edit this page Report an issue

アルゴリズムとデータ構造2021

F2-1 設問1(数列上のアルゴリズム)

数列に含まれるk番目に大きな値を取得するアルゴリズムに関する問題。ピボットを使った再帰的な実装がクイックソートに似ている。
(2)は、アルゴリズムの計算量を求める問題。疑似コードの実装をもとに数学的に厳密な求め方をすると、とてもじゃないが試験時間内に解き終わらない。そこで、Pivot (p)が「平均的にAを2分割する」という事実を「常にpがAを2分割する」と認めてしまって計算することで、比較的容易に計算量のオーダーを求めることができる。

F2-1 設問2(外部ハッシュ法)

(1) は単純な計算問題。
(3) は見慣れない問題だが、問題で8つのキーが上手く設定されており、落ち着いて計算すれば連立方程式を解くだけの問題になる。
(2) での最適なハッシュ割り当ての論証は難しいが、(1)(3)は落としてはいけない問題である。

F2-2(ナップサック問題)

ナップサック問題に対して、貪欲法・動的計画法を用いる問題。
(1)(2) 計算問題
(3) 貪欲法の効率が悪くなるような問題設定を考える問題。(参考:リンク
(4) 計算問題 (5) 有名な動的計画法の説明問題。アルゴリズムの知識がなくても場合分けをすれば解ける。ただし、時間内に解き終わるためには恐らく知識がないと厳しい。

配点例