如何找到3Sum.java的渐近复杂性
如何获得ThreeSum.java中函数count和printall的时间复杂度如何找到3Sum.java的渐近复杂性,java,time-complexity,asymptotic-complexity,Java,Time Complexity,Asymptotic Complexity,如何获得ThreeSum.java中函数count和printall的时间复杂度 public static void printAll(int[] a) { int n = a.length; for (int i = 0; i < n; i++) { for (int j = i+1; j < n; j++) { for (int k = j+1; k < n; k++) { if (a
public static void printAll(int[] a) {
int n = a.length;
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n; j++) {
for (int k = j+1; k < n; k++) {
if (a[i] + a[j] + a[k] == 0) {
System.out.println(a[i] + " " + a[j] + " " + a[k]);
}
}
}
}
}
public static int count(int[] a) {
int n = a.length;
int count = 0;
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n; j++) {
for (int k = j+1; k < n; k++) {
if (a[i] + a[j] + a[k] == 0) {
count++;
}
}
}
}
publicstaticvoidprintall(int[]a){
int n=a.长度;
对于(int i=0;i
虽然时间复杂度问题有时很难回答,但这是一个简单的问题。您只需按如下方式查看即可
for (int i = 0; i < n; i++) // it runs for n times
for (int j = i+1; j < n; j++) // it runs for n-i-1 time
for (int k = j+1; k < n; k++) // it runs for n-j-1 times
所以这个代码的时间复杂度将是
O(n^3)
请仅在此处发布您的代码。好的,谢谢:)您不必将此评论放在您自己的问题上,如果其他人发现它是重复的,他们会把它放在这里。哦,抱歉:哦,如果它有助于您接受答案,那么其他人也可以从中获得帮助。完成了。那么,如果声明根本不影响时间复杂性?是的,它的合作伙伴分配,但与n^3
相比,分配很少。对于时间复杂性,我们通常认为循环是程序花费时间的主要原因。
total = n * ( n-i-1 ) * ( n-j-1 )
= n^3 ... // ignoring all other lower power terms