Algorithm 算法的时间复杂度。选择Big-O和omega

Algorithm 算法的时间复杂度。选择Big-O和omega,algorithm,time-complexity,big-o,Algorithm,Time Complexity,Big O,我有一个任务,我们应该看一下下面的算法: Input: An array A storing n elements Output: An array B, where B[i] = A[0] + A[1] + ... + A[i]. for i = 0 to n-1 Add the numbers A[0] thru A[i]. Store the result in B[i]. 之后,我们应该首先以O(f(n))的形式陈述算法的时间复杂度。然后我们要证明时间复

我有一个任务,我们应该看一下下面的算法:

 Input: An array A storing n elements
 Output: An array B, where B[i] = A[0] + A[1] + ... + A[i].

    for i = 0 to n-1
    Add the numbers A[0] thru A[i].
     Store the result in B[i].
之后,我们应该首先以O(f(n))的形式陈述算法的时间复杂度。然后我们要证明时间复杂度也是Ω(f(n))

现在我已经完成了第一部分,并且说因为T(n)=n(n-1)/2,我们可以声明T(n)=O(n^2)

我的问题是作业的第二部分。算法怎么可能也是Ω(n^2)?从这些符号的定义来看没有任何意义。如果Ω(n^2),那么这意味着T(n)=n(n-1)/2比f(n)=n^2增长更快。这不可能是真的

我知道当我们达到大量n时,T(n)由平方项n^2控制。但是f(n)=n^2仍然不是T(n)的下界,对吗?那么它怎么可能是Ω(n^2)

如果我的英语不好,我很抱歉,但我希望你能理解我的问题并能帮助我。我真的很困惑

我的问题是作业的第二部分。怎么可能 算法也是Ω(n^2)??从这个角度看没有任何意义 这些符号的定义。。如果Ω(n^2),那么这意味着T(n) =n(n-1)/2的增长速度快于f(n)=n^2。这不可能是真的

记住,Big-O和Big-Omega的定义都涉及常数


为了证明它是Ω(n2),你需要一个常数c,使得n(n-1)/2≥ 对于足够大的n(即,高于某一特定值的所有n),为cn2。您的观察结果表明,上述常数不可能是1。

谢谢您的回复!嗯,好吧,我明白,但我怎么能证明c值是多少呢?如果常量值大于1,则该语句不适用于..?请注意,n(n-1)/2=n^2/2-n/2,因此n(n-1)/2-cn=(1/2-c)n^2-n/2。您希望这是一个正值(因此不等式成立)。我会让你玩的。非常感谢你的帮助!我把n=2,然后得到c≤0.25. 这是一个有效的答案吗?看起来不错,但如果你有一个正确的答案,你应该能够说服自己这是真的。