C# 以下循环的最佳/最坏情况分析是什么?

C# 以下循环的最佳/最坏情况分析是什么?,c#,algorithm,big-o,complexity-theory,analysis,C#,Algorithm,Big O,Complexity Theory,Analysis,外部循环和第二个循环没有跳过任何步骤,这将给我们nn+1/2迭代,但我不知道如何计算最内部的循环 int n = int.Parse(Console.ReadLine()); int i =1,j,k; while(i<=n) { for(j=1;j<=i;j++) { if(j%3==0) { for(k=1;k<=(n/2);k++) { Cons

外部循环和第二个循环没有跳过任何步骤,这将给我们nn+1/2迭代,但我不知道如何计算最内部的循环

int n = int.Parse(Console.ReadLine());
int i =1,j,k;
while(i<=n)
{
    for(j=1;j<=i;j++)
    {
        if(j%3==0)
        {
            for(k=1;k<=(n/2);k++)
            {
                Console.Write("*");
            }
        }
        else if(j%3==1)
        {
            k=j;
            while(k>=1)
            {
                Console.Write("@");
                k--;
            }
        }
        else
        {
            for(k=1;k<=(j%3);k++)
            {
                Console.Write("$");
            }
        }
    }
    i++;
}
两个提示

不要输出单个字符,而是将它们收集到字符串生成器中,最后打印一次。 可以使用新的stringchar int-ctor创建字符的重复字符串。 分析:

外环:基于n:on的线性环 外循环:基于n:on的线性循环 内循环:其中一个

基于n/2:on的线性环路 基于j的线性回路,基于i的线性回路,基于n:on 基于j的线性回路,基于i的线性回路,基于n:on On*On*On=On^3

您可能会认为这并不完全正确-第一个最里面的循环是On/2,但是是Big-O计算,常量被消除,因此On/2与On相同

更新-我忘记了最外层的循环

第一个循环将有n次迭代

第二个循环将有nn+1/2次迭代

在第二个回路内部,大约有1/3的n/2长回路、1/3的j长回路和1/3的2长回路

如果我们只看三种可能情况中的第一种,那么我们得到nn+1/2*1/3*n/2,也就是n*n*n+1/12,在^3上,或者更精确地说,在θ^3上

另外两种情况没有多大区别,它们只改变常量


总之,在悲观和乐观的情况下,此代码必须执行与n^3成比例的多次迭代。

这是一个家庭作业问题吗?存在暑期班,而南半球不是暑期。雷切尔,是的。尝试编辑问题,添加更多内容,向我们展示您已经尝试过的内容,并进行一些解释。那样你可能会获得更多的成功。祝你好运在这两种情况下,这是如何回答这个问题?新的Strugar,int仍然是,不是O1I不知道为什么每个人都认为我问我的作业在仲夏!不要回答我。我真的很感激你的回答。这真的很有帮助,谢谢。请选民解释一下这个答案有什么问题?