2011-10-25 13 views
0

は複雑のリストを与えられたのリストを発注:複雑さ(ビッグO)

どのようにあなたは彼らのビッグOのために、そして、注文するのですか?

答えは以下のようですか?

質問は今log(n!)n log(n)になるんですか。また、私はnを持っている場合はまた、私は知らない! (n-1)!右。 c^nがnより大きい可能性はありますか? c> nのときは?

一般的に、このようなBig Oの問題を視覚化するには...これを行うにはかなり時間がかかっています...これまでのコーディングと比べて... MIT Openコースウェアのリソース、説明付きのもの

+0

Excelでさまざまな機能をプロットして、Nが増えるにつれてそれぞれがどのように成長するかを視覚的に理解することが非常に有益であることが分かりました。 –

答えて

1

機能がどのように拡大しているかを確認したい場合があります。ここではウルフラムアルファからの迅速なプロットです:一般的に

link

n^nがより大きい任意のnためc^nよりもはるかに速く成長するには、いくつかのn_0(なぜなら cは非常にある場合でも、いくつかの点でcを追い越すだろうn大)。 logは二次関数または指数関数よりもはるかに遅くなり、線形関数よりもわずかに速くなります。

O(log(n!)) = O(nlogn)については、スターリングの近似と呼ばれるものがあると私は信じています。それはO(n!) = O(n^n)n! = n*(n-1)*(n-2)*...*2*1と見なすので、n^n = n*n*n*...*nが上限です。下界であることも証明できますが、その必要はありません。

log(n^n) = nlogn以降、ログルールでは、O(log(n!) = O(log(n^n)) = O(nlogn)です。

関連する問題