我想计算这个嵌套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
}
}
}
你如何计算复杂性?
答案 0 :(得分:1)
你到达内环的主体多少次?
这将从[0,n)(到i,j,k)
中选择3个元素的每个组合有n *(n-1)*(n-2)/ 3! =(n ^ 3 - 3n ^ 2 + 2n)/ 6这些。
这种复杂性是O(n ^ 3)
答案 1 :(得分:0)
答案 2 :(得分:0)
很简单:有3个循环,每个循环平均为O(n)时间复杂度。
所以它是O(n ^ 3)。