鉴于
for (int i = 1; i <= n - 1; i++)
for (int j = i + 1; j <= n; j++)
Console.WriteLine(i, j);
据我所知,外部for循环运行4n - 1次,内部运行3n ^ 2 - 3次,但我不明白为什么print语句运行n(n - 1)/ 2次。我只得到n(n - 1)作为我的时间复杂度,但幻灯片说n(n - 1)/ 2。我错过了什么?
答案 0 :(得分:1)
...
...
所以操作次数=&gt; (n-1)+(n-2)+(n-3)+ .... + 1 求解为n(n-1)/ 2(记住n个自然数求和的公式 - https://cseweb.ucsd.edu/groups/tatami/handdemos/sum/
答案 1 :(得分:1)
你没有错过太多,因为n(n - 1)
和n(n - 1)/2
的大O界限是O(n^2)
。你展示的双循环将由O(n^2)
限制在上边界,我认为这是主要观点。