我被要求确定此代码的大O时间复杂度:
function(int n) {
for (int i = 0; i < n; i++) {
for (int j = i; j < i * i; j++) {
if (j % i == 0) {
for (int k = 0; k < j; k++) {
printf("*");
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
答案是O(n 5).任何人都可以解释为什么,或如何确定这个?我们是否添加了最内层循环的次数,或者我们是否将每个循环的复杂性相乘?