私は現在、アルゴリズムクラスで大きなO表記法を学んでいます。私はこの問題を私に戸惑わせました。正式な定義が成り立つことがわかっていれば、O(n lg(n))をc * n * lg nとして表すことができますか?意味は、f(n)< = c n lg nであり、定義がいくつかの定数について真である場合、O(n lg n)は、c * n * lg n?そして、私の仮定が真であるならば、我々は行うことができます:ログ(O(n * log(n)))は何ですか?
= LG(O(n個のLG N))
= LG(C×n個* LG n)で
= LG(C)+ lg(n)がこの場合の最上位の項である場合、これはO(lg(n))と単純化されますか?lg(n)+ lgすべての下位項は最終的に最高次項と重複するので、
'n'は任意に大きくなるので、' nlgn'項は定数n回のように動作するので、 'lg(c * n)'のままになります。だから私はあなたの推論が正しいと思います。 –
あなたが提起した問題は本質的にナンセンスです。 g(n)= O(f(n))は、gの成長の速さに関するアサーションです。 O(。)は関数ではありません。したがって、log(O(。))は迷惑です。 – Gene
@Gene:なぜOは関数ではないと思いますか?関数の定義とは何ですか? –