KDOC 484: 『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』
この文書のステータス
- 作成
- <署名>
- レビュー
- <署名>
概要
『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』は、コンテストを題材にして基礎的なアルゴリズムを解説する本。
メモ
- アルゴリズムの効率は主に2つの計算量で評価される。このトレードオフを考えてアルゴリズムを設計する。時間計算量のほうが問題になることが多い(p43)
- 時間計算量
- 領域計算量
- 重要なことは、プログラムを実装する前に、入力の上限からアルゴリズムの最悪の計算量を評価すること(p45)
- ソートアルゴリズムの選択の基準(p53)
- 計算量と安定性
- データの列を保持する以外のメモリ
- 入力データの特徴が計算量に影響しないか
- 選択ソートは離れた要素を交換するので安定なソートではない(p68)
- キューの実装方法の1つとして、headとtailのポインタを記録しておく方法がある。キューを処理するたびに先頭要素がずれていき、そのままではメモリを無駄にする。かといってheadを常に0に保つようにデータ全体移動させると、そのたびに要素長ぶんの計算が必要になる。ので、リングバッファにする方法がある(p90)
関連
なし。