要求求出以下函数的时间复杂度,我们需要分析函数的执行过程和代码结构。
- 函数:int sum(int n)
代码:int result = 0;
for (int i = 1; i <= n; i++) {
result += i;
}
return result;
时间复杂度:O(n)
分析:该函数使用一个循环,循环次数与输入的n成正比,因此时间复杂度为O(n)。
- 函数:void printPairs(int[] array)
代码:for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
System.out.println(array[i] + ", " + array[j]);
}
}
时间复杂度:O(n^2)
分析:该函数使用两个嵌套循环,每个循环的次数与输入的数组长度array.length成正比,因此时间复杂度为O(n^2)。
- 函数:void printAllPairs(int[] array)
代码:for (int i = 0; i < array.length; i++) {
for (int j = i + 1; j < array.length; j++) {
System.out.println(array[i] + ", " + array[j]);
}
}
时间复杂度:O(n^2)
分析:该函数使用两个嵌套循环,第二个循环的起始位置是i+1,因此内层循环的次数比外层循环少,但仍然是O(n^2)级别的时间复杂度。
- 函数:void printAllSubArrays(int[] array)
代码:for (int i = 0; i < array.length; i++) {
for (int j = i; j < array.length; j++) {
for (int k = i; k <= j; k++) {
System.out.print(array[k] + " ");
}
System.out.println();
}
}
时间复杂度:O(n^3)
分析:该函数使用三个嵌套循环,第三个循环的起始位置是i,结束位置是j,因此内层循环的次数与外层循环的次数成正比,因此时间复杂度为O(n^3)。
综上所述,根据函数的代码结构和执行过程,可以得出以上函数的时间复杂度。