Algorithm 如何确定这个嵌套for循环的时间复杂度
我想计算这个嵌套for循环的复杂性:Algorithm 如何确定这个嵌套for循环的时间复杂度,algorithm,Algorithm,我想计算这个嵌套for循环的复杂性: for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { for (int k = j + 1; k < n; k++) { //do something here } } } for(int i=0;i
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
for (int k = j + 1; k < n; k++) {
//do something here
}
}
}
for(int i=0;i
如何计算复杂性?到达内部循环体的次数是多少 这将选择[0,n](i,j,k)中3个元素的每个组合 其中有n*(n-1)*(n-2)/3!=(n^3-3n^2+2n)/6个 这个问题的复杂性是O(n^3)
- 实际上,这三个for循环是获得所有循环数的好方法 选择n个元素中的3个元素的不同组合
- 它 等于C(n,3)和C(n,i)->O(n^i)
- 所以答案是O(n^3)。
所以它是O(n^3)。如果你不把它当作一个组合问题来处理呢?你能想到其他可以使用的地方吗?