C# 以下循环的最佳/最坏情况分析是什么?
外部循环和第二个循环没有跳过任何步骤,这将给我们nn+1/2迭代,但我不知道如何计算最内部的循环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
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不知道为什么每个人都认为我问我的作业在仲夏!不要回答我。我真的很感激你的回答。这真的很有帮助,谢谢。请选民解释一下这个答案有什么问题?