我目前正在介绍算法课程,我需要帮助解决这个问题。由于我对此表示怀疑,因此不太确定。 :)我有两个问题:
问题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