2012-03-20 53 views
1

我必須按照漸近順序安排n.logn,log(log(n))等幾個函數,我不知道該怎麼做,有人可以幫我解決嗎?如何找到函數的漸近階?

我知道這不是一個「做我的作業」論壇,但我真的很感激,如果有人能幫我做到這一點!謝謝。

+0

這是一個嚴格的基於證明的數學課,或不太嚴格的編程類型的東西,或...? – mfrankli 2012-03-20 02:02:23

+0

這是一個針對碩士學生的「算法和數據結構」課程。除了實現排序算法,它沒有太多的編程。 – 2012-03-20 02:05:05

回答

0

一種interesting reference你開始與...

  • 恆定時間 - O(1)(例如如果確定的整數(二進制表示)是偶數還是奇數
  • 對數時間 - O(log n)的(例如二進制搜索)
  • 二次時間 - O(N2)(如冒泡排序,插入排序)
  • 等...
1

函數的順序描述了一個函數尺度隨着輸入的大小增加的需求如何。因此,log(log(n))對於n的所有值都會比n.log(n)更好地擴展(更有效),因爲log(log(n))< n.log(n)。在實踐中,您還必須擔心隱藏的常量,這可能會極大地影響算法的性能(即9.log(n)= log(n),其中9將退出)。

有用的表可以在這裏找到:http://en.wikipedia.org/wiki/Big_O_notation#Orders_of_common_functions

+0

那麼我應該如何說明步驟?我應該假設像1,2,10等n的2-3個值,然後解決所有這些問題並安排它? – 2012-03-20 02:02:57

+0

問題具體是什麼問題? – lrAndroid 2012-03-20 02:05:06

+0

列出從最低漸近階到最高漸近階的下面的函數。 (n),log(log(n)),[log(n)] 2,log(n2)。 – 2012-03-20 02:05:39

0

的功能採取比和當n趨向無窮大時計算出的比率的限制。如果比例不明顯,你可以使用L'Hopital的規則。

http://en.wikipedia.org/wiki/L%27Hôpital%27s_rule

那麼你也可以做數值檢查,看看你的結果是有道理的。對於上面的例子,(log(log(n)))/(n log(n))的極限是零,所以n log(n)增長得快得多!