我有一個問題,如何確定1函數比另一個函數更快或更慢。如果教授使用O(1)和O(n)的例子,我知道O(1)更快,但我真的只知道通過記憶運行時間順序的簡單函數......但是如果給出更復雜的例子,我不明白如何找到更快的功能。如何根據O-notation來判斷一個函數是否比另一個函數更快?
例如,假設我想比較ñ^ LOGN和n ^(LOGN)^ 2和n ^(開方(N))。我怎樣才能比較這些功能,並能夠分辨出哪一個具有最快和最慢的運行時間(大O符號)?有沒有一步一步的過程,我可以按照每次,以便比較功能運行時間時可以使用?
下面是我對上面的例子思想。我知道n^2比n^3快。所以我想比較每個函數的n^____。因此,如果每插入n = 1000000,logn將具有最小值,logn^2將具有第二個值,並且logn^sqrt(n)將具有最大值。這是否意味着最小值(n^logn)將是最快的,而最大值(n^sqrt(n))將是最慢的? 2. N^LOGN(最快) 1. N^LOGN^2 2. N^SQRT(N)(最慢)
它取決於N的值。查看錶達式的圖形。 – SLaks 2014-10-02 02:43:02
簡短的答案是,你不能。 「n」接近無窮大時,複雜性告訴你漸近行爲。它並不一定告訴你任何有限的'n'的實際速度。 – 2014-10-02 02:50:31