問題タブ [big-o]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
24 に答える
479364 参照

algorithm - Big O さん、どのように計算/概算しますか?

CS の学位を取得したほとんどの人は、 Big O の略語を知っているはずです。アルゴリズムがどれだけうまくスケールするかを測定するのに役立ちます。

しかし、興味深いのは、アルゴリズムの複雑さをどのよう計算または概算するのですか?

0 投票する
8 に答える
1765 参照

sorting - O(n!) よりも悪いソートを書くにはどうすればよいですか

私は自分のアミューズメント用に O(n!) ソートを作成しました。これは、完全に置き換えずに高速に実行するために簡単に最適化することはできません。[いいえ、ソートされるまでアイテムをランダム化しただけではありません]。

時間の複雑さを軽減するために引き抜くことができる無関係なジャンクを追加するだけでなく、さらに悪い Big-O ソートを作成するにはどうすればよいでしょうか?

http://en.wikipedia.org/wiki/Big_O_notationには、さまざまな時間の複雑さが大きくなる順に並べられています。

編集:コードを見つけました。これは、リストのすべての組み合わせのリストを生成する面白いハックを使用した O(n!) 決定論的ソートです。反復可能な組み合わせを返す get_all_combinations の少し長いバージョンがありますが、残念ながら単一のステートメントにすることはできませんでした。[以下のコードでタイプミスを修正し、アンダースコアを削除して、バグが発生していないことを願っています]

0 投票する
3 に答える
3879 参照

python - Pythonの組み込みシーケンスタイプの時間と空間の複雑さはどこにありますか

Pythonソースコードを自分で調べてオブジェクトがどのように機能するかを判断する以外に、この情報のソースを見つけることができませんでした。私がこれをオンラインで見つけることができる場所を誰かが知っていますか?

0 投票する
25 に答える
40655 参照

algorithm - 8歳のビッグオー?

これが私のコードにとって何を意味するかについてもっと尋ねています。私は概念を数学的に理解していますが、それらが概念的に何を意味するのかを理解するのに苦労しています. たとえば、データ構造に対して O(1) 操作を実行する場合、項目が増えるため、実行する操作の数が増えないことは理解しています。また、O(n) 操作は、各要素に対して一連の操作を実行することを意味します。誰かここの空欄を埋めてくれませんか?

  • O(n ^ 2)操作は正確に何をしますか?
  • そして、操作が O(n log(n)) である場合、それはどういう意味ですか?
  • そして、誰かが O(x!) を書くためにクラックを吸わなければならないのですか?
0 投票する
6 に答える
147920 参照

data-structures - 一般的なデータ構造からのインデックス作成、挿入、および削除の時間の複雑さは?

配列、リンクされたリスト、ハッシュ テーブルなどを含む最も一般的なデータ構造に対する操作の Big O 表記の概要はありません。

0 投票する
12 に答える
28356 参照

optimization - ビッグオー記法とは?使いますか?

ビッグオー記法とは?使いますか?

私はこの大学のクラスを逃したと思います:D

誰かがそれを使用し、それを使用した場所の実例を挙げていますか?


以下も参照してください。

8歳のビッグオー?
Big O さん、どのように計算/概算しますか?
計算複雑性理論を実生活に適用しましたか?

0 投票する
8 に答える
37658 参照

java - どのリスト implementation will be the fastest for one pass write, read, then destroy?

What is the fastest list implementation (in java) in a scenario where the list will be created one element at a time then at a later point be read o

What is the fastest list implementation (in java) in a scenario where the list will be created one element at a time then at a later point be read one element at a time? The reads will be done with an iterator and then the list will then be destroyed.
I know that the Big O notation for get is O(1) and add is O(1) for an ArrayList, while LinkedList is O(n) for get and O(1) for add. Does the iterator behave with the same Big O notation?


You can run code in .NET 2.0 and .NET 3.5 on the same server, but you must have at least one application pool per framework version. The only thing you have to watch is not to mix a 2.0 app and a 3.5 app in the same pool.

Rationale : only one framework can be loaded for each process and each application spawns its own process(es)

0 投票する
4 に答える
2560 参照

algorithm - バランスのとれた分配アルゴリズム

疎結合クラスターのコードに取り組んでいます。ジョブ中に最適なパフォーマンスを実現するために、子が出入りするたびにクラスターにデータを再マッピングさせます。これは最終的にはオプションになりますが、現時点ではデフォルトでデータ バランシングを実行します。私のバランス調整は基本的に、各子がマシンごとの平均ファイル数に 1 を加えた数を超えないようにすることです。除算がきれいでない場合、プラス 1 は残りの部分です。そして、残りは常に子数よりも少ないため [0 の場合を除きますが、それを除外できます]、バランス調整後の子は最大で avg + 1 になります。

私のアルゴリズムが O(n!) であることに気付くまでは、すべて問題ないように見えます。子供のリストを下に移動し、残りの平均を調べます。誰が多すぎて誰が少なすぎますか。多すぎるリストの各子供について、リストを調べて、少なすぎる子供に送信します。

これに対するより良い解決策はありますか?あるに違いないと感じます。

編集:これは、O(n!)をどのように導出したかを示す擬似コードです:

編集:O(n ^ 2)。Foreach n、n => n*n => n^2。今朝はコーヒーが足りなかったみたい!;)

将来的には、より柔軟で回復力のある分散方法 [重みとヒューリスティックス] に移行したいと考えていますが、今のところ、データの均一な分散が機能しています。

0 投票する
39 に答える
30068 参照

arrays - 配列に n...n+m が含まれているかどうかを判断するアルゴリズム?

Reddit でこの質問を見ましたが、肯定的な解決策は提示されていませんでした。ここで質問するのに最適な質問だと思いました。これは、インタビューの質問に関するスレッドにありました。

サイズ m の int 配列を取り、配列が n...n+m-1 の数値、その範囲のすべての数値、およびその範囲の数値のみで構成されている場合に (True/False) を返すメソッドを作成します。配列がソートされる保証はありません。(たとえば、{2,3,4} は true を返します。{1,3,1} は false を返し、{1,2,4} は false を返します。

これに関して私が抱えていた問題は、インタビュアーが最適化 (より高速な O(n)、より少ないメモリなど) を私に求め続け、一定量のメモリー。それを理解したことがありません。

解決策とともに、配列に一意のアイテムが含まれていると想定しているかどうかを示してください。また、ソリューションがシーケンスが 1 から始まると想定しているかどうかも示してください。

編集:私は今、重複を処理する線形の時間と一定の空間アルゴリズムが存在しないという意見です。誰でもこれを確認できますか?

重複の問題は、O(n) 時間、O(1) 空間で配列に重複が含まれているかどうかを確認するテストに要約されます。これができれば、最初に簡単にテストできます。重複がない場合は、投稿されたアルゴリズムを実行します。では、O(n) 時間 O(1) 空間で重複をテストできますか?

0 投票する
6 に答える
4602 参照

algorithm - すべての Big-O 表記のマスター リストはありますか?

すべての Big-O 表記のマスター リストはありますか? データ構造、アルゴリズム、それぞれに対して実行される操作、平均的なケース、最悪のケースなど。