以下是我与之合作的问题:
Algorithm Income ()
int i=0;
while i<n
.....
我的想法:我认为 t(n)= n 和 O(n)。
为什么我认为:我认为这是因为,当我初始化i=0
时,该操作成本为1,当我检查while条件时,操作为n-1。
因此,如果我将所有操作加在一起,我就会得到n。
如果有人能帮助我理解如何解决这个问题或帮助修改我的理解,那么我将不胜感激。
谢谢!
答案 0 :(得分:0)
我想对你的理解做出的一个修正是2个操作:
int i=0;
和while i<n
是独立的,因此会增加费用。
让我们将i=0
的通话费用作为 c1 并正确提及 c1 = 1
让while i<n
的通话费用为 c2 。
现在c2 不会是n-1 。它将 n 。原因是你从0开始一路走到 n-1 。如果您从1变为n-1,成本将 n-1 。
总成本= c1 + c2 = n + 1。
现在对于更大的n,我们可以忽略常数成本1,因此我们说它是O(n)