Big o 大欧米茄算法

Big o 大欧米茄算法,big-o,Big O,我无法分析以下内容 for b = 1 to n for u = b to n for i = b to u Print 我无法确定最坏情况下的运行时。 第一个循环运行n次,第二个循环运行(n(n+1))/2次。 然后我相信第三个循环运行(n+1)/2次 但是,有人告诉我,它的运行时为O(n^3)。 因此,最佳情况下的运行时间不能大于最坏情况下的运行时间! 如果可能的话,我希望朝着正确的方向努力! 谢谢 第三个循环在激活时执行Printu-b

我无法分析以下内容

for b = 1 to n
     for u =  b to n
        for i = b to u
            Print
我无法确定最坏情况下的运行时。 第一个循环运行n次,第二个循环运行(n(n+1))/2次。 然后我相信第三个循环运行(n+1)/2次

但是,有人告诉我,它的运行时为O(n^3)。 因此,最佳情况下的运行时间不能大于最坏情况下的运行时间! 如果可能的话,我希望朝着正确的方向努力!
谢谢

第三个循环在激活时执行Printu-b+1次{3}

当第二个循环被激活时,第三个循环对从b到n的所有u被激活,即执行打印1+2+3+…n-b+1次(替换{3}中的u=1,2,3…n)。使用的公式,此计数等于(n-b+1)(n-b+2)/2{2}

当第一个循环被激活时,第二个循环为从1到n的所有b激活,即执行打印n(n+1)/2+(n-1)n/2+(n-2)(n-1)/2+。。。1次(替换{2}中的b=1,2,3…n;计数正在减少)

使用的公式,这等于n(n+1)(n+2)/6{1}

如果这种方法有问题,可以手动模拟打印

对于n=1

*
对于n=2

*
* *

*
对于n=3

*
* *
* * *

*
* *

*
对于n=4

*
* *
* * *
* * * *

*
* *
* * *

*
* *

*


您可以清楚地看到三角形逐渐变小的图案。三角形的面积随着边的平方而增长总体积随着边的立方体而增长

这些循环的最小和最大运行时间始终相等!顺便说一句,我们通常说最好的情况和最坏的情况,而不是最小值或最大值。此外,您还混淆了最小值/最大值和Omega/O表示法。第三个循环显然没有运行(n+1)/2次。