2017-06-23 12 views
1

ここではビッグオーを使っています。 f(n)とg(n)をO(n)に等しい時間複雑度を持つ2つの関数とする。定義により"="はアルゴリズムの時間複雑度を表すのに "∈"ではなく、なぜ使用されるのですか?

(時間-複雑さを説明するために「=」を使用した場合)推論のこの種のは本当かもしれない:

IF f(n)=O(n) AND g(n)=O(n) THEN f(n)=g(n) 

しかし、私たちが知っているように、同じ成長率を持つ2つの機能は限りません同じ。

これらの種類のミスマッチを回避するために、O(n)は時間複雑度がO(n)である関数の集合として定義されないのはなぜですか?

O(n)=O(f(n))=O(g(n))={n, f(n), g(n), ...} 
f(n)∈O(n) 
g(n)∈O(n) 
+1

あなたの最初の主張のソースは?私はそれが真実だとは思わないでしょう。 –

+0

[ビッグO表記は "要素の"または "等しい"](https://math.stackexchange.com/questions/2066004/big-o-notation-is-element-of-or-is-equal)。 [Big-Oと等号、表記の乱用](https://stackoverflow.com/questions/7077351/big-o-and-equals-sign-abuse-of-notation)。 [big-Oとlittle-oとの等号の規則は何ですか?](https://math.stackexchange.com/questions/86076/what-are-the-rules-for-equals-signs-with-big -o-and-little-o) – Dukeling

答えて

5

O(N)、実際には、あなたが提案するとおりに定義されます。 εの代わりに=を頻繁に使用するのは、単に表記を乱用することです。それは便利であり、実際にはあいまいさを引き起こしません。