漸近的にタイトな上限とは何ですか?


15

私が学んだことから、漸近的にタイトなバインドは、シータ表記のように上下からバインドされていることを意味します。しかし、Big-O表記法の漸近的に厳密な上限はどういう意味ですか?


これも私を混乱させました。著者が「シータ」と言えないのはなぜですか?不要な用語を発明する理由
— ベロア

回答:


20

big-Oバウンドが「漸近的にタイト」であると言うことは、基本的には著者が書いたことを意味します。例えば、O (X 2)それはよりある一定時間以内であることを意味  X 2すべての十分な大きさのために  、X。「漸近的にきつい」と、それは実際にいくつかの定数倍である  X 2十分な大きさのため  のxおよびない、と言う、いくつかの一定の時間  のx 1.999。Θ(−)O(バツ2)バツ2バツバツ2バツバツ1.999


13

これを説明する例(およびDavidのすばらしい答えの具体例)を示します。

整数配列を入力として与えるアルゴリズムがあるとします。アルゴリズムは配列をスキャンし、偶数の整数である要素を検出するたびに最初にゼロに設定されたカウンターを増分します。たとえば、O (n 3)時間でアルゴリズムが実行されることを証明できます。ここで、nはAの要素数ですAO(n3)nA。しかし、より厳しい境界を与えることもでき、それは時間で実行されると言います。この境界は漸近的に厳密です。実際、入力の読み取りにはすでにΩ (n )時間かかるため、より正確に、アルゴリズムはO(n)Ω(n)時間。Θ(n)


3
+1ですが、あなたが選んだ例の危険性は、上限が漸近的にタイトであると主張するのは間違っていると誤解される可能性があると思うことです。(これは、「入力の読み取りに少なくとも時間必要です」という観測が表示されるたびに、「アルゴリズムが存在しない」という主張を正当化するために使用されているためです。)Ω(n)
— j_random_hacker

1
@j_random_hackerそのとおりです、注意してください。繰り返しになりますが、もちろん、漸近的にタイトな境界は、一般に高速なアルゴリズムを使用できる可能性については何も言及していません。
— ジュホ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.