Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 算法的大O分析_C#_Big O - Fatal编程技术网

C# 算法的大O分析

C# 算法的大O分析,c#,big-o,C#,Big O,接下来是我找不到答案的一系列大O问题 以下面的例子为例 for(int i = 0; i < someNumber; i++) { for(int j = i; j < someNumber; j++) { DoSomething(); } } for(int i=0;i

接下来是我找不到答案的一系列大O问题

以下面的例子为例

for(int i = 0; i < someNumber; i++)
{
    for(int j = i; j < someNumber; j++)
    {
        DoSomething();
    }
}
for(int i=0;i
这还会被认为是O(n^2)吗?我之所以这么问,是因为我觉得这必须小于O(n^2),因为对于I的每次迭代,内部循环执行的次数越来越少(因为j开始越来越接近某个数字)


谢谢

外部循环运行n次。内部循环开始运行n次,但随着外部循环的每次迭代而减少,直到最后一次迭代只运行一次。内部循环中的代码将运行

n+(n−1) + ... + 2+1

时代


可以简化为n(n+1)/2(),或者n2/2+n/2,或者最后是(n2+n)/2。因为第一项是n2,所以算法是O(n2)。

我认为这不是一个糟糕的家庭作业问题。你至少可以说OP已经考虑了几分钟。我几年前就毕业了。这不是家庭作业。这是一个合理的问题,关于我对如何计算这类时间复杂度的误解algorithm@jbutler483这远远不是“为我做作业”,OP展示了一些合理的想法和努力来解决问题,并提出了一个非常好的问题。它将被执行n*(n+1)/2次。所以仍然
O(N^2)
证明正是我理解这一点所需要的。非常感谢。