seegongsik
単語帳
アルゴリズム

はやさを はかる ものさし

どの ほうほうが はやいか、どう わかるでしょう? ストップウォッチで はかれば いい きが しますが、コンピューターが はやいと ぜんぶ はやく 見えます。ほんとうの ちがいは、ますが 少ない ときは 見えず、ますが どっと ふえる ときに あらわれます。だから はやさは びょうでは なく「ますが ふえると 仕事が どれだけ ふえるか」で はかります。

01

かいすうを かぞえる

びょうで はかると まよいます。
はやい コンピューターでは
おそい ほうほうも はやく 見えます。
だから びょうの かわりに
「何かい はたらくか」を かぞえます。
ますが n こ の とき
ほうほう ごとに
はたらく かいすうが ちがいます。

入力の 大きさを えらぶ
一つずつn かい
?
半分ずつlog n かい
?
ますが 大きく なるほど 二つの かいすうの さが ひらきます。

入力の 大きさを えらんで、ほうほう ごとの かいすうを かぞえます。(一つずつ = n かい · 半分ずつ = 少ない)

ますが 少ない ときは
二つが にて 見えます。
8ますなら
一つずつ 8かい、
半分ずつ 3かい。
たいした さは ない。
でも ますを どっと ふやすと
どう なるでしょう?

02

大きく すると どう なる

ここで ほんとうが 見えます。
n を 大きく すると
ある ほうほうは
ますの ぶん ゆっくり ふえ、
ある ほうほうは
ますが 二ばいだと
仕事が 四ばいに とびます。
n かける n、
それが n二じょうです。

2n4n かける n
いま n = 2 · n かける n = 4
ますが 二ばいに なる ごとに n は 二ばい、n かける n は 四ばいに とびます。

n を おして 大きく してみましょう。n は ますの ぶん ふえますが、n二じょうは ますが 大きく なるほど ばくはつ するように ふえます。

n二じょうが こわいのは
ますが 大きい ときです。
100ますなら
n は 100、
n二じょうは 10000。
1000ますなら
n は 1000、
n二じょうは 百まんです。
小さく はじまっても
すぐ 手に おえなく なります。

03

カーブを くらべる

三つの そだちを
ならべると
ひと目で 見えます。
log n は
ますが 大きく なっても
ほとんど 上がりません。
n は ななめに まっすぐ、
n二じょうは 上へ そって
はるか 上に つきぬけます。

n
同じ n でも n かける n は はるか 上へ、log n は ほぼ そこに はりついて そだちます。

カーブを おして つけて くらべます。同じ n でも log n・n・n二じょうの たかさは まるで ちがいます。

もう わかりますね。
半分ずつ きるのが
なぜ あんなに はやかったか。
半分ずつは log n、
ますが 千こ でも
十かいで おわります。
一つずつは n、
千こ なら 千かい。
そだつ かたちが
しょうぶを わけたのです。

04

大きな こうだけ のこす

じっさいの かいすうを かぞえると
3n二じょう+5n+9 のように
しきが ごちゃごちゃです。
でも n が とても 大きく なると
n二じょうが ほかを
ぜんぶ 上まわります。
だから 小さな こうは けして
いちばん 大きく そだつ
n二じょうだけ のこします。

3n2+ 5n+ 9
まだ けす ものが あります
n が とても 大きく なると 小さな こうと まえの すうじは うもれます。大きな こうだけ のこすのが ビッグオーです。

小さな こうを おして 一つずつ けします。3n二じょう+5n+9 で n が 大きいと n二じょうだけ のこり、それが ビッグオー(O)です。

まえの すうじも けします。
3n二じょうでも 100n二じょうでも、
そだつ かたちは 同じ n二じょうですから。
だから ただ
O(n二じょう)と かきます。
ビッグオーは「大きな ますで
どんな かたちで そだつか」を
一ぎょうで かいた なふだです。

05

ここまで きました

まとめると こうです。
はやさは びょうでは なく
そだつ かたちで はかります。
ます n が 大きく なる とき
log n は ほとんど ふえず、
n は ますの ぶん、
n二じょうは ばくはつ。
しきが ふくざつでも
大きな こう 一つだけ 見れば よく、
その しるしが ビッグオーです。

こうを おして そだつ かたちを つけて

三つを おして 一ぎょうに まとめます。log n は ほぼ たいら、n は ななめ、n二じょうは 上へ ばくはつ。大きな こうだけ 見れば いいです。

もう ほうほうを 見れば
びょうを はからなくても
はやいか みつもれます。
ますが 二ばいの とき
仕事も 二ばいなら いい、
四ばいに とんだら ようちゅうい。
よい ほうほうは
大きな しごとの まえでも
ゆっくり そだつ ほうほうです。

一言でいうとはやさは びょうでは なく、自ら そだつ かたちで はかります。入力の ます n が 大きく なる とき、仕事が どれだけ ふえるかを 見るのです。log n は ほとんど ふえず、n は ますの ぶん ふえ、n二じょうは ばくはつします。そして しきが ふくざつでも、いちばん 大きく そだつ こう 一つだけ のこせば いいです。3n二じょう+5n+9 は ただの n二じょうです。こうして 大きな こうだけ 見る しるしが、ビッグオー(O)です。だから 大きな データでは、半分ずつ きるのが、一つずつより くらべものに ならない ほど はやいのです。
アルゴリズム
このページがお役に立ったなら支援する