2016-08-12 93 views
-1

當計算任何算法的運行時間時,我們總是忽略常量 這樣的3n + 2 = 0(n) 爲什麼我們忽略了簡單語句的運行時間。 和運行時間和執行時間有什麼區別?如何計算運行時間

+0

您正混淆算法複雜性與運行時間和執行時間。維基百科可能是開始討論這個問題的好地方。 –

+1

檢查這個流行的算法複雜性問題:http://stackoverflow.com/questions/487258/what-is-a-plain-english-explanation-of-big-o-notation/487278#487278 – m69

回答

0

大O符號是一個漸近的符號,它從數學中獲得了描述「極限」中函數行爲的思想。

查看漸近表示法的簡單方法是它放棄函數中的所有常量因子。基本上,如果n足夠大(假設一切都是正的),則n^2將總是更大。改變常數因子a和b不會改變 - 它改變n的具體值,其中n^2更大,但不會改變它發生。所以我們說O(n^2)比O(n)大,並忘記那些我們可能無法知道的常量。

  • 編譯時間=取源代碼,創建一個可執行文件。
  • 運行時間=可執行文件接受輸入(從鍵盤,鼠標,網絡等)並生成輸出。
+0

如果a和b是大數在計算中沒有區別?! 說a = 100000和b = 9000 計算a * n + b = 0(n)時它與 的結果確實不同,但是100000 * n + 9000 –

+0

通過考慮常數我們沒有有效的變化,這意味着如果a和b的值非常大,a * n + b = O(n)不會使常數的值產生任何差異。 –