Java 在O(n^2)中查找数组中的所有三元组
我试图打印数组中的所有三元组,不像3SUM或任何类似的东西,它们不满足任何条件。我只想把它们全部打印出来 我的简单解决方案Java 在O(n^2)中查找数组中的所有三元组,java,arrays,algorithm,Java,Arrays,Algorithm,我试图打印数组中的所有三元组,不像3SUM或任何类似的东西,它们不满足任何条件。我只想把它们全部打印出来 我的简单解决方案 for (int i = 0; i < arr.length - 2; i++) { for (int j = i + 1; j < arr.length - 1; j++) { for (int k = j + 1; k < arr.length; k++){
for (int i = 0; i < arr.length - 2; i++) {
for (int j = i + 1; j < arr.length - 1; j++) {
for (int k = j + 1; k < arr.length; k++){
System.out.println(arr[i] + " " + arr[j] + " " + arr[k]);
}
}
}
for(int i=0;i
在O(n^3)
中运行,三联体的数量为((n)*(n-1)*(n-2))/(3!)
所以我的问题是,这能比O(n^3)更快吗?是三胞胎组合的数量
O(n^3)
因此,理论上不可能做得比这更好,因为仅仅打印它们的操作将需要
O(n^3)
操作
O(n^3)
因此,从理论上讲,这是不可能做得更好的,因为仅仅打印它们的操作将需要
O(n^3)
操作。在n^3
操作中,您不能打印n^3
三元组
如果计算时间有问题,您可以将打印操作分为
n
线程,这样理论上可以将时间减少n
在n^3
操作中打印n^3
三元组
如果计算时间有问题,您可以将打印操作分为
n
线程,这样理论上可以将时间减少n
您无法在少于O(n^3)的时间内打印O(n^3)个三元组。@DanielWagner,没关系。我误解了这个问题:)你不能在少于O(n^3)的时间内打印出O(n^3)个三胞胎。@DanielWagner,没关系。我误解了这个问题:)