あなたの質問には、入力サイズと実行時の複雑さの関係を理解するのに役立つように意図的に配置されているか、誤解によって引き起こされた単純な曖昧さがいくつかあります。
したがって、このシナリオを解釈できる限り:
アルゴリズムの複雑さは、 m に関してO(m)線形です。
したがって、時間の複雑さは、エントリを生成するように指定しWe assume that generating the data is independent of input. i.e. O(1).たものにのみ依存します。n
そうですO(n log n)、 size の入力に対して何もしないので、アルゴリズムは時間内に実行されると言えますm。
更新された質問への回答:
いくつかのキーワードは異なるものを指しているため、理解するのはまだ難しい. しかし、一般的に、これはあなたが得ているものだと思います:
- 特定のnが与えられた場合、入力としてデータセット、つまりサイズO(n log n)があります。
- このデータセットは入力としてのみ使用されます。事前に生成されるか、ブラックボックスに与えられた n に関係なく O(1) 時間で実行されるブラックボックスを使用して生成されます。(この質問のブラックボックスには興味がありません)
- このデータセットは、実際に分析したいアルゴリズムに送られます。
- このアルゴリズムは、サイズ m の入力に対して時間複雑度 O(m) を持ちます。
- 入力のサイズは n に関して O(n log n) であるため、拡張により、O(m) 線形時間アルゴリズムは n に関して O(n log n) の時間複雑度を持ちます。
違いを確認するには: アルゴリズムが線形ではなく二次 O(m^2) であると仮定すると、n に関して時間複雑度 O(n^2 log^2 n) になります。