选择排序的大O如何以数学方式计算?

时间:2012-02-28 06:39:46

标签: algorithm big-o

有人可以用简单的英语解释如何计算吗? 我知道您必须访问n+2+(n-1)+2+...+2+2个元素,但是如何到达1/2n^2 + 5/2n - 3?谢谢!

1 个答案:

答案 0 :(得分:1)

n + 2 + (n - 1) + 2 + ... + 2 + 2等于(n + 2) + (n + 1) + ... + 4。它是arithmetic progression,其总和计算为(n + 2 + 4) * (n + 2 - 4 + 1) / 2。它等于(n + 6) * (n - 1) / 2,最后是1/2 * n^2 + 5/2 * n - 3

f(n) = O(g(n))表示对于所有足够大的n存在C f(n) <= C * g(n)。如果n被视为自然数,则为1/2 * n^2 + 5/2 * n - 3 = O(n^2),例如C = 3/2