Algorithm 有人能评估这个函数的时间复杂度吗
我的答案是O(n^3),但当我试图用西格玛符号找到它时,结果总是O(n^2) 原始问题: 以下算法返回什么值?它的基本操作是什么?如何Algorithm 有人能评估这个函数的时间复杂度吗,algorithm,time,complexity-theory,Algorithm,Time,Complexity Theory,我的答案是O(n^3),但当我试图用西格玛符号找到它时,结果总是O(n^2) 原始问题: 以下算法返回什么值?它的基本操作是什么?如何 基本操作执行了很多次?给出最坏情况下的运行时间 使用大Oh表示法的算法。tldr:该算法位于O(n^3)中 为什么? 计算r的频率 function (n) input : an integer n r ← 0 for i = 1 to n //runs n times for j = i + 1 to n // runs n^2
基本操作执行了很多次?给出最坏情况下的运行时间
使用大Oh表示法的算法。tldr:该算法位于
O(n^3)
中
为什么? 计算
r的频率
function (n)
input : an integer n
r ← 0
for i = 1 to n //runs n times
for j = i + 1 to n // runs n^2 times
for k = i + j − 1 to n //runs n^3 times
r ← r + 1
return r
int n = 10;
int r = 0;
for (int i = 1; i <= n; i++) {
for (int j = i + 1; j <= n; j++) {
for (int k = i + j - 1; k <= n; k++) {
r++;
}
}
}
i = 1 -> k = 2, 3, 4, 5, 6, ..., n
i = 2 -> k = 4, 5, 6, ..., n, (n+1)
i = 3 -> k = 6, ..., n, (n+1), (n+2)
.
.
.
i = n -> k = (n+(n-2))
2, 3, 4, 5, 6, 7, 8, 9, 10
4, 5, 6, 7, 8, 9, 10, 11
6, 7, 8, 9, 10, 11, 12
8, 9, 10, 11, 12, 13
10, 11, 12, 13, 14
12, 13, 14, 15
14, 15, 16
16, 17
18
2, 3, 4, 5, 6, 7, 8, 9, 10|
4, 5, 6, 7, 8, 9, 10|, 11
6, 7, 8, 9, 10|, 11, 12
8, 9, 10|, 11, 12, 13
10|, 11, 12, 13, 14
| 12, 13, 14, 15
| 14, 15, 16
| 16, 17
| 18
9, 8, 7, 6, 5, 4, 3, 2, 1
7, 6, 5, 4, 3, 2, 1
5, 4, 3, 2, 1
3, 2, 1
1
9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1
+ 7 + 6 + 5 + 4 + 3 + 2 + 1
+ 5 + 4 + 3 + 2 + 1
+ 3 + 2 + 1
+ 1
sum_{i = 1}^{n - 1} ceil((n - i) / 2) * i
n^3 / 12 - n / 12