タグ付けされた質問 「time-complexity」

アルゴリズムの時間の複雑さは、問題への入力のサイズの関数として実行するためにアルゴリズムが費やす時間を定量化します。アルゴリズムの時間の複雑さは、通常、乗法定数と低次の項を抑制するビッグO表記を使用して表現されます。


30
JavaScriptで配列に値が含まれているかどうかを確認するにはどうすればよいですか?
JavaScript配列に値が含まれているかどうかを確認する最も簡潔で効率的な方法は何ですか? これが私が知っている唯一の方法です。 function contains(a, obj) { for (var i = 0; i < a.length; i++) { if (a[i] === obj) { return true; } } return false; } これを達成するためのより良い、より簡潔な方法はありますか? これは、スタックオーバーフローの質問と非常に密接に関連しています。これは、を使用して配列内のオブジェクトを見つけることを扱いますindexOf。

30
O(log n)は正確にはどういう意味ですか?
Big O Notationの実行時間と償却時間について学習しています。私はO(n)線形時間の概念を理解しています。つまり、入力のサイズがアルゴリズムの成長に比例して影響を及ぼします...たとえば、二次時間O(n 2)などでも同じです、階乗によって成長するO(n!)回の置換ジェネレータなど。 たとえば、次の関数はO(n)です。これは、アルゴリズムが入力nに比例して大きくなるためです。 f(int n) { int i; for (i = 0; i < n; ++i) printf("%d", i); } 同様に、ネストされたループがある場合、時間はO(n 2)になります。 しかし、正確にはO(log n)とは何ですか?たとえば、完全な二分木の高さがO(log n)であるとはどういう意味ですか? ログ:私は対数はという意味で、あるもの(そうでないかもしれない非常に詳細で)知っている10 100 = 2を、私は対数時間で機能を特定する方法を理解することはできません。

29
Pythonスクリプトのプロファイルをどのように作成できますか?
多くの場合、プロジェクトオイラーやその他のコーディングコンテストの実行時間は最大であるか、特定のソリューションの実行速度が自慢です。Pythonでは、時々アプローチがややこしい-つまり、タイミングコードをに追加する__main__。 Pythonプログラムの実行にかかる時間をプロファイルする良い方法は何ですか?

9
アルゴリズムの時間の複雑さを見つける方法
質問 アルゴリズムの時間の複雑さを見つける方法は? SOに質問を投稿する前に何をしましたか? 私はこれ、これと他の多くのリンクを通過しました しかし、時間の複雑さを計算する方法についての明確でわかりやすい説明を見つけることができた場所はありませんでした。 私は何を知っていますか? 以下のコードのように単純なコードを言ってください: char h = 'y'; // This will be executed 1 time int abc = 0; // This will be executed 1 time 以下のようなループがあるとします。 for (int i = 0; i < N; i++) { Console.Write('Hello World !'); } int i = 0; これは一度だけ実行されます。時間は実際にi=0は宣言ではなく計算されます。 i …



12
フィボナッチ数列の計算の複雑さ
Big-O表記は理解できますが、多くの関数で計算する方法がわかりません。特に、フィボナッチ数列の単純なバージョンの計算の複雑さを理解しようと試みてきました。 int Fibonacci(int n) { if (n <= 1) return n; else return Fibonacci(n - 1) + Fibonacci(n - 2); } フィボナッチ数列の計算の複雑さはどのくらいで、どのように計算されますか?



5
2 ^ nとn * 2 ^ nは同じ時間の複雑さですか?
時間の複雑さについて私が見つけたリソースは、特に非多項式の例で、時間の複雑さの方程式の項を無視してもよいかについては不明です。 n 2 + n + 1の形式が与えられた場合、最後の2つの項は重要ではないことは明らかです。 具体的には、2つの分類2 nとn *(2 n)が与えられた場合、2 番目の分類は最初の分類と同じ順序ですか?追加のn乗算は重要ですか?通常、リソースは、x nが指数関数であり、はるかに速く成長するというだけです...次に進みます。 2 nがnを大幅に上回らないので、なぜそうならないのか理解できますが、2つを加算していないため、2つの方程式を比較するときに非常に重要です。実際、それらの差は常にnの因数となります。控えめに言っても重要なようです。

15
Javaハッシュマップは本当にO(1)ですか?
JavaハッシュマップとそのO(1)ルックアップ時間についての興味深い主張を見てきました。これがなぜそうであるか誰かが説明できますか?これらのハッシュマップが、購入したハッシュアルゴリズムと大きく異なる場合を除き、衝突を含むデータセットが常に存在している必要があります。 その場合、ルックアップはでO(n)はなくになりO(1)ます。 誰かがそれらが O(1)であるかどうかを説明できますか?

14
二分探索の複雑さを計算する方法
誰かが二分探索は探索に必要な入力を半分にするので、それがlog(n)アルゴリズムであると誰かが言うのを聞いた。私は数学の出身ではないので、それを理解することはできません。誰かがもう少し詳しく説明できますか?対数系列で何かしなければならないのですか?

7
DFSとBFSの両方の時間の複雑さはなぜですかO(V + E)
BFSの基本的なアルゴリズム: set start vertex to visited load it into queue while queue not empty for each edge incident to vertex if its not visited load into queue mark vertex したがって、時間の複雑さは次のようになると思います。 v1 + (incident edges) + v2 + (incident edges) + .... + vn + (incident edges) v頂点はどこ1にn まず、私が言ったことは正しいですか?第二に、これはどうですか、O(N + E)そしてなぜ素晴らしいのかについての直感。ありがとう

19
最大単一販売利益
ある日の株価を表すn個の整数の配列が与えられているとします。私たちは、ペア見つけたい(buyDay、sellDay)と、buyDay≤sellDay我々は上の株式を購入した場合、そのようなことを、buyDayとのそれを販売しsellDay、私たちは私たちの利益を最大にするが。 明らかに、可能なすべての(buyDay、sellDay)ペアを試し、それらのすべてから最良のものを取り出すことにより、アルゴリズムのO(n 2)ソリューションがあります。しかし、O(n)時間で実行されるより良いアルゴリズムはありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.