gpt4 book ai didi

algorithm - 嵌套for循环运行时间的问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:53:21 25 4
gpt4 key购买 nike

几天来我一直在思考这个问题,一直在计算第二个嵌套 for 循环将运行的次数。我相信我有正确的公式来确定其他两个 for 循环的运行时间,但是第三个让我挂断了电话。我有第一个循环运行 n-1 次。确定循环 #2 运行次数的公式是; 1 到 n-1 的总和。如果有人能帮助我了解如何找到循环 #3 运行的次数,我将不胜感激。

    for ( int i=1; i<=n-1; i++ ) {
for ( int j=i+1; j<=n; j++ ) {
for ( int k=1; k<=j; k++ ) {
}
}
}

最佳答案

第三个循环运行C次:

C = Sum( Sum ( Sum ( 1 , k = 1 .. j ) , j = i+1 .. n ) , i = 1 .. n-1 )
= Sum( Sum ( j , j = i+1 .. n ) , i = 1 .. n-1 )
= 2 + 3 + 4 + ... + n
+ 3 + 4 + ... + n
...
+ n
= 2*1 + 3*2 + 4*3 + 5*4 + ... + n*(n-1)
= (1*1 + 1) + (2*2 + 2) + (3*3 + 3) + ... + ((n-1)*(n-1) + n-1)
= (1^2 + 2^2 + ... (n-1)^2) + (1 + 2 + 3 + ... + (n-1))
= (n-1)*n*(2*n-1)/6 + (n-1)*n/2
= (n-1)*n*(2*n+2)/6
= O(n^3)

这里我使用了公式:

1^2 + 2^2 + ... + m^2 = m*(m+1)*(2*m+1)/6

1 + 2 + ... + m = m*(m+1)/2

关于algorithm - 嵌套for循环运行时间的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7375296/

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