O(n log n)で記述される関数のクラスの名前は何ですか?


40

「ビッグO」では、一般的な表記法に共通の名前が付けられています(「ああ、一定の要素がある」と言う代わりに)。

O(1)は「定数」です

O(log n)は「対数」です

O(n)は「線形」です

O(n ^ 2)は「二次」です

O(n * log n)は???

それは単に「n log n」ですか、それとも上記のような特別な名前を持っていますか?


回答:


52

これは線形時間と呼ばれ、準線形として知られるより一般的なクラスの特殊なケースです。名前が示すように、このクラスに分類されるアルゴリズムはほぼ線形時間で実行されます。実際に、彼らはに実行アルゴリズムより低い複雑有する用いて。O(nk)k>1


コメントは詳細なディスカッション用ではありません。この会話はチャットに移動さました
ジル 'SO-悪であるのをやめる'

17

線形:調整

アルゴリズムの実行時間はO(N log N)です。Robert SedgewickによるAlgorithms In Cの 'linear'および 'logarithmic'のportmanteauとして作成(Addison-Wesley 1990、ISBN 0-201-51425-7)。

http://catb.org/jargon/html/L/linearithmic.html


なぜ私はそれがセッジから来ることに驚かないのですか... :)
TextGeek


7

コメントするには長すぎたので、答えを書きました。多くの人が私の最初のvanswerをすでに支持していたので、これを最初の回答に追加しませんでした。

  • 私は、受け入れられた答えへのコメントで述べられているように、線形主義が確立された用語だとは思わない。この用語、CSコース、およびこの用語と多くのオンライン辞書を使用するSedgewickによる別の本を使用して、かなり若い記事を検索しました。
  • 準線形という用語は、2つの記事で見つけました。

    NQL
    CP Schnorrの満足度は準線形完全
    です。コンピューティング機械協会ジャーナル
    25巻。

そして、このショアーの記事を扱っているウィキペディアで引用された記事で。Schnorrは、準線形(QL)および非決定的準線形(NQL)の複雑度クラスを導入しています。
準線形は偏微分方程式の理論でも使用されているようです。

全体として、1人以上のウィキペディアンが、広く受け入れられている名前を持たないこの関数の名前を提供したかったようです。しかし今でも、広く受け入れられている名前はないように思えます(これはウィキペディアが行うべきではない一種の操作だと思います)。用語の質問にウィキペディアを使用する場合は注意が必要だと思います。そして、この機能にとっては十分なソースではありません。この関数で広く受け入れられている名前はn log nだけだと思い ます


1
線形対数線形の正当性は議論の余地があるかもしれませんが、準線形は定評のある用語だと思います。研究論文で広く使用されているようです。
Roukah

@Roukahはい、しかしそれはまったく同じことを意味するものではありません。準線形がより一般的です。-私はあいまいでない名前を使用してウィキペディアで何が問題が表示されていない、ないより良い代替手段を持っていないように見える、とされ、それはあまり普及していなくても、合理的に有名なソースに使用します。実際、非常に一般的な複雑性クラスであるにもかかわらず普及していないという事実は、人々がより多く使用し始めた時期を示唆していると思います!
左辺約

+1「この関数の広く受け入れられている名前はn log nのみです」-他のすべての答えは楽しくて啓発的ですが、あなたは正しいかもしれません。私は数日前から「リニアリズム」と言うことを練習してきましたが、それでも舌から外れることはありません。「En log en」は言うのも覚えるのも簡単で、Big Oに精通している人ならすぐに理解できます。少し考えてみますが、この答えを受け入れなければならないかもしれません。
グレンペターソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.