アジェンダ
● プログラムとアルゴリズム
● プログラミングにおけるアルゴリズムとデータ構造の関係
● 時間計算量と性能の基準
アルゴリズムとは:
処理を行う手順を記述したもの
例:
プログラム、料理レシピ、楽譜、数学の途中計算...
プログラミングにおけるアルゴリズムとデータ構造の関
係
プログラミングにおけるアルゴリズムで考えることは
・メモリを使うが処理が早い・メモリを使わないが処理が遅い
この2つが一般的に例として挙げられます(時間と空間のトレードオフ)
特に、メモリ消費が多いが処理を速くするとき
この時の定石として「はじめからある程度のデータを定義しておく」
という方法があります
そういった手段を使うとプログラムとしてのアルゴリズムが持つ計算量にデータ構造分を
「付け加えて考えないと行けない」
計算量のうち「最悪のケース」
つまり、一番時間がかかる時の計算量を「最大計算量」といい
すべての人がかかる時間の平均の計算量を「平均計算量」と言います
これがどれくらい速いか知りたいときは「定本、javaプログラマのためのアルゴリズムとデータ
構造」という本を参考にしてみてください
まとめ
●プログラムとはアルゴリズムとデータ構造を組み合わせたもの
●プログラミングではデータ構造も含めてアルゴリズムを考える
●時間計算量がアルゴリズムの優劣の基準になる