我正在算法课程中学习Big O表示法。我刚刚完成了本周的在线测验,我们获得了一堆代码块,必须为它们选择大的O复杂性。
除了以下代码块,我一切都正确:
void printPairs(int[] arrX, int[] arrY) {
for(int i = 0; i < arrX.length; i++) {
for(int j = 0; j < arrY.length; j++) {
System.out.println(arrX[i] + "," + arrY[j]);
}
}
}
我O(N^2)
输入了,但是我弄错了,我不确定为什么,有两个for循环?不幸的是,直到一周结束,我才能看到其他可用选项或正确答案。
如果只有一个输入,即一个数组作为参数传递并在两个for循环的每一个中进行迭代,则运行时间为O(N²)。
因为该方法有两个输入(arrX
和arrY
),并且在两个for循环的每一个中都使用了两者。
Big O运行时为O(XY),其中X = arrX.length
和Y = arrY.length
。
编辑:如@Oighea所述,这仍然是二次时间算法。它只是两个变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句