毎日O log n)複雑さ?O(1)、O(n log n)、O(log n)の複雑さを持つアルゴリズムの例
答えて
質問に与えられたとして、あなたが時間の複雑さを持つステートメントのアルゴリズム/グループの例をしたい場合は、ここでの小さなリストがある -
O(1)時間
1.配列のインデックス(int型へのアクセス= ARR [5];リンクリスト内のノード
3.親またはの右/左の子を見つけるキュー
5から挿抜4. スタック
上を押すとPopingの挿入)
2配列
に格納されたツリー内のノード横断配列
2を横断二重連結リスト
、あなたは万の以上のこのような例を見つけることができます...
O(n)の時間
1次/前の要素へ6.ジャンプ回文
7カウント/バケツソート
の確認二つの文字列
6を比較すると、リンクされたリスト内の特定の要素のリンクリスト
3.リニア検索
4.削除(ソートされていない)
5.とここでもあなたは万の以上のこのような例を見つけることができます....一言で言えば
、すべてのブルートフォースアルゴリズム、または直線性を必要とNoobのものは、(O(n)の時間複雑
Oをに基づいていますベストの方法
- フィボナッチ数の計算リニア機能
4に基づいて、二分探索木
3.特定の分割統治アルゴリズムで最大/最小の番号を見つけるのバイナリ検索
2に
1. n)の時間を記録しますここでの基本的な前提は完全なデータを使用せず、すべての反復で問題のサイズを小さくすることです
O(nlogn)時間
1マージソート
2.ヒープソート
3クイックソート
4 Oの最適化に基づいて、特定の分割統治アルゴリズム(N^2)のアルゴリズム
因子分裂と征服を考慮して 'log n'の導入を紹介します。これらのアルゴリズムの中には、最適化されたものがあり、頻繁に使用されるものもあります。
はO(n^2)の時間
1バブルソート
2.挿入ソート
3。選択ソート
4.単純な2D配列の移動
これらのオブジェクトは、O(nlogn)対応オブジェクトが存在する場合、効率の低いアルゴリズムと思われます。一般的なアプリケーションはここでブルートフォースかもしれません。
これがあなたの質問にうまく答えることを願っています。ユーザーが追加する例があれば、私はもっと幸せになります:)
nについてはどうですか?私はどのような一般的なアルゴリズムがnを使用しているのだろうか? –
HashMap値と、HashMapと二重リンクリストを使用してO(1)を達成する、またはPUSH/POP/MIN機能を持つスタックを実装するLRU実装のような、より複雑なアルゴリズムへのアクセス。また、フィボナッチの再帰的実装はN! – ruralcoder
また、^ nを見つけることはO(log n)です。 liangのJavaプログラミングブックの紹介の良い例 – oiyio
ソフトウェアアプリケーションの複雑さは測定されず、big-O表記では書き込まれません。アルゴリズムの複雑さを測定し、同じドメイン内のアルゴリズムを比較することだけが役に立ちます。ほとんどの場合、O(n)と言うとき、「O(n)比較」または「O(n)算術演算」を意味します。つまり、アルゴリズムやアプリケーションのペアを比較することはできません。
これは本当に真実ではありません。アルゴリズムがO(N)時間の複雑さを有する場合、そのランタイムは、ある一定のkに対してk * Nステップによって境界が定められることを意味する。 「ステップ」がCPUサイクル、アセンブリ命令、または(シンプルな)C操作であるかどうかは重要ではありません。その詳細は定数kによって隠されている。 –
多くの実用的なケースでは、O(logN)アルゴリズムの「c」は、より単純なO(N)アルゴリズムよりも悪化させます。 – Zed
Haha、はい、そしてNでは、チューリングマシンテープの入力の長さを意味します。これは、垂直方向の分割に指数関数的な時間を要します。 :-)各ドメインには独自の要件があり、抽象化の独自の領域があります。 –
私はあなたにいくつかの一般的なアルゴリズムを提供することができます...
- O(1):配列の要素にアクセスする(つまり、iは= INT [9])
- O (N Nログ) :迅速またはマージソート(平均して)
- O(n個のログを記録):この質問の宿題/インタビュー一種のように聞こえるようバイナリ検索
これらは、腸の応答になります。もっと一般的なアプリケーションの基本的な実装(オープンソースの確保)や、一般的な概念は「アプリケーション」
には適用されないので、より具体的なものを探しているなら、少し難しいでしょう。O(1)
の簡単な例はreturn 23;
であるかもしれません - 入力が何であれ、これは固定された有限の時間に戻ります。
O(N log N)
の典型的な例は、良いアルゴリズム(例えば、mergesort)で入力配列をソートすることです。
O(log N)
が2等分してソートされた入力配列の値を参照する場合の典型的な例です。
O(n log n)は、任意の集合をソートする速度の上界で有名です(標準であり高度に並列化されていないコンピューティングモデルではないと仮定します)。
O(1):Chessの中で次の最良の動きを見つける(またはその点についてはGoを参照)。
はい、通常はスペースのために時間を取ることができます。私はちょうど3^9の状態があるので、チック・タック・トゥ・ゲームのためにこれを実際に行ってきました(あなたが回転を知的に扱う場合は少なくなります)。チェスは、しかし、いくつかの州の数が多い:-) – paxdiablo
O(1) - ほとんどの調理手順はO(1)であり、それ以上の場合でも一定の時間がかかりますあなたの鍋/鍋のスペースが足りなくなり、料理を分けなければならないので、料理する人もいます。
O(ログ) - あなたの電話帳に何かを見つける。バイナリ検索を考えてください。
O(n) - 本を読む。nはページ数です。それは、本を読むのに最低限必要な時間です。
O(nlogn) - あなたがマージまたはクイックソートを行うことでカードをソートしない限り、nlognである毎日何かをすることはできません。
あなたはあなたのリストに次のアルゴリズムを追加することができます。
O(1)
- 数が偶数か奇数であるかどうかを決定します。コンピューティングX^N、
O(N Log N)
- - ハッシュマップ
O(logN)
で作業最長増加サブ
O(1) - 二重にリンクされたリストから要素を削除します。例えば
typedef struct _node {
struct _node *next;
struct _node *prev;
int data;
} node;
void delete(node **head, node *to_delete)
{
.
.
.
}
- 1. 床(√2n)のO(log log n)アルゴリズム?
- 2. O(n)とO(log(n))の違い - これはより良く、O(log(n))は正確に何ですか?
- 3. O(fib n)複雑アルゴリズム?
- 4. O(log n)は常にO(n)よりも速いですか
- 5. ListBox.FindString最悪の場合のランタイムは何ですか? O(n)、O(n log n)、O(1)?
- 6. 時間Oの複雑さ(n(nはをログ)ログ)+ nはO(L)
- 7. O(n log n)時間内に特別な点kを見つけるアルゴリズム
- 8. O(n)vs O(n^2)
- 9. O(3^log n)をO(n^log 3)として書き直すことはできますか?
- 10. f(n)= log(n)^ mはすべての自然数mに対してO(n)
- 11. O(n)時間の複雑さを持つN-queenについての説明?
- 12. 2つのループで実行時間O(n^3 log n)で実行
- 13. T(n)= 2T(n/2)+ O(n)からO(nlogn)を得る方法
- 14. Big Oの例2^n
- 15. C++ステートメントのBig-O 'delete [] Q;' O(1)またはO(n)?
- 16. 漸近分析では、 - O(f(n)+ g(n))= O(max {f(n)、g(n)})
- 17. 防止O(N)クエリ
- 18. 可能な説明(N!)= O(NLG(N))
- 19. なぜO(n * logn)ではなくTreeSet Iteration O(n)ですか?
- 20. 合計アルゴリズム:O(n^2)平均で
- 21. 衝突検出にO(n^2)の複雑さを避ける
- 22. Javaコレクション:TreeMap.size()およびTreeSet.size():O(1)またはO(n)?
- 23. アルゴリズムの漸近解析:時間nでソートされたリストnにk個の新しい要素を挿入する方法O(k log k + n)
- 24. バイナリツリーO(n)のInOrder Treeトラバーサルの時間複雑度?
- 25. O(log(log)))) - 競合平均とは何ですか?
- 26. O(N)未満のN擬似乱数を生成する
- 27. C#逆シリアル化のO(n * n)の動作?
- 28. 複雑さ(ビッグO)
- 29. O(n^3)未満の最大フローアルゴリズム
- 30. 時間の複雑さn ^(O(k))は何を表していますか?
wikiにしてください。 –
なぜwikiなの?それは投票でも主観的でもありません。彼女はbig-Oプロパティの具体的な例を望んでいます。 – paxdiablo
Wikiには正解が1つしかないので、複数の答えがあります。 –