我目前正在介紹算法課程,我需要幫助解決這個問題。由於我對此表示懷疑,因此不太確定。 :)我有兩個問題:
問題1: 從我所瞭解的算法書中,我相信這個問題的運行時複雜度是f(n)= 3n。爲什麼?那麼因爲while循環將繼續運行n次,並且對於循環的每次迭代,您有3次操作(1次減法,1次乘法和1次加法)是我的過程是正確還是錯誤?由於賦值語句,它應該是f(n)= 5n。我知道兩者都是相同的複雜性,但我真的很想明確地確定。
問題2: 至於說明算法是否找到了多項式的值,我已經足夠讓我舉一個例子來找到一個特定多項式的值,例如3n^2 + 2n + 1來證明該算法的工作原理還是有更好的方法來做到這一點。
在計算時間複雜度時,您不必關心常量。 O(n)與O(2n)和O(200n)相同 – arunmoezhi 2014-09-12 21:37:26
哦,好的。複雜度BigOh(n)的代碼也是如此。我的思維過程是正確的,還是其他複雜性? arunmoezhi – TwilightSparkleTheGeek 2014-09-12 21:38:38
你應該問自己這些問題。 while循環運行多少次? 「i」的值是否與循環內部完成的工作無關(除了'i = i-1')? – arunmoezhi 2014-09-12 21:41:22