为什么下面的函数的时间复杂度为O(n)?我无法弄清楚我的一生。
void setUpperTriangular (
int intMatrix[0,…,n-1][0,…,n-1]) {
for (int i=1; i<n; i++) {
for (int j=0; j<i; j++) {
intMatrix[i][j] = 0;
}
}
}
}
我将最终时间复杂度保持为O(n ^ 2),因为:
i: execute n times{//Time complexity=n*(n*1)
j: execute n times{ //Time complexity=n*1
intMatrix[i][j] = 0; //Time complexity=1
}
}
最佳答案
代码遍历数组中的n^2/2
(半个正方形矩阵)位置,因此其时间复杂度为O(n^2)
关于complexity-theory - 为什么这个时间复杂度为O(n)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21388719/