タグ付けされた質問 「big-o」

Big-O表記は、漸近的な上限を表すために使用されます。アルゴリズムの関連する時間または空間の複雑さについて説明します。Big-O分析は、問題の難易度の大まかな簡略化された見積もりを提供します。

9
Big n(n ^ 2 + n)/ 2成長率のアルゴリズムに関する質問
この質問をしているのは、大きなO表記に関する1つの側面について混乱しているためです。 Frank Carrano 著の「Data Structures and Abstractions with Java」という本を使用しています。「アルゴリズムの効率」に関する章では、次のアルゴリズムを示しています。 int sum = 0, i = 1, j = 1 for (i = 1 to n) { for (j = 1 to i) sum = sum + 1 } 彼は最初、このアルゴリズムを(n 2 + n) / 2の成長率を持つと説明しています。どちらを見るかは直感的に思えます。 ただし、nが大きい場合、(n 2 + n) / 2はn …
16 algorithms  big-o 

6
二重再帰関数のランタイムを決定するにはどうすればよいですか?
任意の二重再帰関数がある場合、実行時間はどのように計算しますか? 例(擬似コード): int a(int x){ if (x < = 0) return 1010; else return b(x-1) + a(x-1); } int b(int y){ if (y <= -5) return -2; else return b(a(y-1)); } またはそれらの線に沿って何か。 このようなものを決定するためにどのような方法を使用できますか?

7
Big Oh表記は定数値に言及していません
私はプログラマーであり、アルゴリズムを読み始めたばかりです。表記法、つまり、Bog Oh、Big Omega、およびBig Thetaに完全には納得していません。その理由は、Big Ohの定義によるもので、関数f(x)が常にf(x)以上になるように関数g(x)が存在する必要があることを示しています。または、n> n0のすべての値に対してf(x)<= cn。 定義に定数値を記載しないのはなぜですか?たとえば、関数6n + 4の場合、O(n)と表記します。しかし、定義がすべての定数値に当てはまることは事実ではありません。これは、c> = 10およびn> = 1の場合にのみ有効です。cの値が6よりも小さい場合、n0の値は増加します。では、なぜ定義の一部として定数値に言及しないのでしょうか?

3
関数an + bがO(n ^ 2)およびΘ(n)に属するというステートメントを説明してください。
私は線形関数を持っているとしましょうf(n)= an+b、この関数がO(n 2)に属していることを証明する最良の方法は何Θ(n)ですか? ここでは数学的な厳密さは必要ありません。プログラマーの回答が必要です。説明の論理的な方法。 これがまさに数学のQ&AではなくプログラマーのQ&Aに質問を投稿しなかった理由です。

2
2 ^ sqrt(n)の時間計算量
私はアルゴリズムの質問を解決していますが、私の分析では、O(2 ^ sqrt(n))で実行されます。どれくらい大きいの?O(2 ^ n)と同等ですか?まだ非多項式時間ですか?

5
アルゴリズムのランダウ表記(Big OまたはTheta表記)をプログラムで見つけるには?
私は、アルゴリズムを可能な限り最適化するために、手作業でアルゴリズムのLandau(Big O、Theta ...)表記を検索するのに慣れていますが、関数が本当に大きく複雑になっているとき、それはうまくいきません手でやるには時間がかかりすぎます。また、ヒューマンエラーが発生しやすくなります。 私はCodi​​lity(コーディング/アルゴリズム演習)に時間を費やし、提出されたソリューションのLandau表記(TimeとMemoryの両方の使用量)が表示されることに気付きました。 私は彼らがそれをどのように行うのだろうと思っていました...どのようにあなたはそれをしますか? 字句解析またはコードの解析以外の方法はありますか? この質問は主にPHPやJavaScriptに関係していますが、私はどんな言語や理論にも心を開いています。

2
LINQ selectのBig O等価
代わりにLINQ選択を使用すると、ネストされたループのBig O等価に変更があるかどうかを確認しようとしています。 public void myFunc(List<Foo> fooList, List<Bar> barList) { foreach(Foo foo in fooList) { foreach(Bar bar in barList) { if(foo.PropA == bar.PropA && bar.PropZ.HasValue) foo.PropC = foo.PropB * bar.PropZ; } } } このネストされたループの例は、複雑さのためにO(n ^ 2)であると思います。 ネストされたループを次のようなLINQ選択に置き換えました。 public void myFunc(List<Foo> fooList, List<Bar> barList) { foreach(Foo foo in fooList) { Bar bar …
10 c#  big-o 

2
単一のforループランタイム説明問題
さまざまなforループの実行時間を分析しています。知識が増えてきているので、この問題を理解したいと思っています。この問題は、まだ解明されていません。「エクササイズされる星の数」というこのエクササイズがあります。 for (int i = N; i > 1; i = i/2) System.out.println("*"); 選ぶべき答えは A: ~log N B: ~N C: ~N log N D: ~0.5N^2 答えはAであるべきと私はそれに同意するが、他の側に..ましょうと言うが、それでN = 500何を考えLog N、その後も?2.7になります。では、N=500上記の演習でそれを言うとどうなるでしょうか。それは間違いなく2.7以上の星を印刷するでしょうか?それはどのように関連していますか? forループが次のようになっていると言うのは理にかなっているからです。 for (int i = 0; i < N; i++) N星を印刷します。 私はここでこれについての説明を見つけたいと思っています。多分私はこれらすべてのことを間違って解釈し、それについて悪い方法で考えています。前もって感謝します。


4
ネストされたループのBig-O
Big-Oでこの投稿を読ん でいます。次のコードはO(n ^ 2)であると表示されています。 bool ContainsDuplicates(String[] strings) { for(int i = 0; i < strings.Length; i++) { for(int j = 0; j < strings.Length; j++) { if(i == j) // Don't compare with self { continue; } if(strings[i] == strings[j]) { return true; } } } return false; } しかし、なぜか分かりません。 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.