gpt4 book ai didi

c++ - 大 O 符号计算

转载 作者:行者123 更新时间:2023-11-30 01:37:48 25 4
gpt4 key购买 nike

我一直在为下面的片段代码确定大 o 符号,给定的表达式是我试图弄清楚的一部分。我知道给定两个普通的默认 for 循环会导致 O(n^2) 但后者完全不同。这是说明。

算法

for (j = 0; j < n; j++)
{
for (k = j; k < n; k++)
{
}
}

将导致表达式给定的迭代次数:

= n + (n-1) + (n-2) + (n-3) + ........ + (n - n)
  • 将上述级数表达式化简为代数表达式,不求和。

  • 确定代数表达式后用Big O Notation表示表现。

最佳答案

可以用这个方法(据说是高斯小时候用的)。

如果你将所有数字相加两次,你有

     1   +   2   +   3   + ... +  n
+ n + (n-1) + (n-2) + ... + 1
—————————————————————————————————————--
(n+1) + (n+1) + (n+1) + ... + (n+1) = n(n+1)

因此,

1 + 2 + 3 + ... + n = n(n+1)/2

n(n+1)/2(n^2)/2 + n/2,所以在O(n^ 2)

关于c++ - 大 O 符号计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49044750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com