Java 这种方法的时间复杂度是多少?
以下代码的时间复杂度是多少Java 这种方法的时间复杂度是多少?,java,big-o,Java,Big O,以下代码的时间复杂度是多少 void method1(int n){ for (int i = 0; i <arr.size()/2; i++){ System.out.println(""); } } void方法1(int n){ 对于(int i=0;i,因为迭代次数与数组的大小成正比,所以这将是O(n)。通常,在确定复杂性时,您将忽略迭代次数上的任何常量乘法 您可能会发现这很有用: 我还猜测这是一个家庭作业问题,因此我鼓励您联系您的讲
void method1(int n){
for (int i = 0; i <arr.size()/2; i++){
System.out.println("");
}
}
void方法1(int n){
对于(int i=0;i,因为迭代次数与数组的大小成正比,所以这将是O(n)。通常,在确定复杂性时,您将忽略迭代次数上的任何常量乘法
您可能会发现这很有用:
我还猜测这是一个家庭作业问题,因此我鼓励您联系您的讲师或助教寻求更多帮助。任何好的讲师都乐意花任何必要的时间来确保他们的学生理解材料。此代码的复杂性取决于循环执行的时间数
让我们假设arr
的长度为m
,那么循环将执行m/2
但是复杂度不是O(m/2)
而是O(m)
,因为我们在寻找复杂度时去掉了常数。你觉得怎么样?有趣的是n
没有使用,而arr
没有定义。让我们假设arr只是一个字符串数组。我认为它应该是O(log(n))?注意“n”在O(n)
中表示arr.size()
,而不是int n
参数。