計算量とオーダー

7,329 views

Published on

競技プログラミング練習会2014 Normalで使ったスライドです。計算量とオーダーという概念について説明しています。

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,329
On SlideShare
0
From Embeds
0
Number of Embeds
68
Actions
Shares
0
Downloads
13
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

計算量とオーダー

  1. 1. 計算量とオーダー
  2. 2. 計算量 ●アルゴリズムが計算を行うときに必要になる、 計算資源の量 ●計算にかかる時間を時間計算量 ●計算に必要な記憶領域の量を空間計算量 ●普通計算量という時は時間計算量を指す
  3. 3. 計算量 ●計算量は入力に依存する ●例)一つの数を取って、その素因数を答える問題 ●1桁の数より100桁の数の方が時間がかかりそう ●計算量 を入力の大きさ の函数  で表すT n f (n) 1 2 3 4 5 6 7 8 9 10 0 50 100 150 200 250 計算量
  4. 4. オーダー ●アルゴリズム同士を比較したい ●どちらが良いアルゴリズムか? ●入力サイズが大きいときの違いで比べたい ●入力が小さい時はどちらにせよ一瞬で終わる ●細かな違いを無視して大まかな比較をしたい ●オーダーの考え方を用いる
  5. 5. オーダー ●ある定数 があって、  と  の間に という関係が成り立つとき、 と書く。 f (n)k g(n) f (n)≤k×g(n) f (n)=O(g(n))またはf (n)∈O(g(n))
  6. 6. オーダー ●イメージ 1 2 3 4 5 6 7 8 9 10 0 50 100 150 200 250 300 350 f(n) g(n) k*g(n)
  7. 7. オーダー ●代表的なオーダー ●   定数時間 ●     対数時間 ●   線形時間 ●   多項式時間 ●   指数時間 ●   階乗時間 O(1) O(log(n)) O(n) O(nc ) O(cn ) O(n!)
  8. 8. オーダー ●競技プログラミングでは大まかな計算時間を見 積もるために使うことが多い ●1秒間にできる処理は多くて1億回程度 ●処理の内容により変わってくる ●O記号の中に入っている変数に、具体的な数値 を入れてみて大丈夫そうかを確かめる

×