算法补充

时间:2014-02-25 18:36:23

标签: algorithm

对于下面的算法,我需要以下帮助。

  1. Algorithm Sum(m, n) 
    //Input: A positive integer n and another positive integer m ≤ n 
    //Output: ? 
    sum = 0 
    for i=m to n do 
    for j=1 to i do 
    sum = sum + 1 
    end for j 
    end for i 
    return sum
    

    我需要帮助搞清楚它的计算方法?加法总数sum =(sum + 1)的公式是什么。

    我有算法计算m和n之间的所有正整数,包括m和n。 添加数量的公式是。 且m + m + 1 + ... .. + N

1 个答案:

答案 0 :(得分:0)

我没有得到你的问题......似乎你问了一些问题,但你自己也提出了答案......无论如何,这是我对问题的回答......

对于Q1,似乎你要求输出和迭代总数(summation(m..n) = (n+m)(n-m+1)/2

对于Q2,您似乎也在询问执行了多少次比较,即n-1次。

为了解决递归T(n)= aT(n-1)+ c其中a,c是常数, 通过重复替换n-2n-3 ...直到1,您可以找到T(n) = O(n)

PS :如果是家庭作业,也许你已经做了,因为你似乎已经有了自己的答案,我强烈建议你尝试通过一些特定的案例来解决问题。对于Q2,您应该尝试理解几种方法来计算递归关系,替换方法可以用来解决这种简单的关系,许多其他人可能需要使用master theorem

此外,您应该让自己能够理解为什么Q2的复杂性实际上与正常的循环迭代方法相同。