Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 包含if语句的While循环的方法的大O表示法_Java_Notation - Fatal编程技术网

Java 包含if语句的While循环的方法的大O表示法

Java 包含if语句的While循环的方法的大O表示法,java,notation,Java,Notation,对于这样一个方法的大O符号是什么,我有点困惑 public void printOut (SinglyLinkedList<Double> myLinked){ Iterator<Double> itr = myLinked.iterator(); while (itr.hasNext()){ double d = itr.next(); // unboxing if (d > 5.0) System.out.println (d); } /

对于这样一个方法的大O符号是什么,我有点困惑

public void printOut (SinglyLinkedList<Double> myLinked){
Iterator<Double> itr = myLinked.iterator();
while (itr.hasNext()){
    double d = itr.next(); // unboxing
    if (d > 5.0)
    System.out.println (d);
} // while
} // method printOut
public void打印输出(SingleLinkedList MyLink){
迭代器itr=myLinked.Iterator();
while(itr.hasNext()){
双d=itr.next();//取消装箱
如果(d>5.0)
System.out.println(d);
}//而
}//方法打印输出

如果没有If语句,我知道它是'n',但是由于println不会在每次迭代时都执行,我该如何给出符号?

答案仍然是
O(n)


如果循环在列表中运行,它是
O(n)

答案仍然是
O(n)


如果循环在列表中运行,则它是
O(n)

您仍在遍历整个列表并查看每个值以进行比较,因此程序仍然是O(n)。

您仍在遍历整个列表并查看每个值以进行比较,因此程序仍然是O(n)。

请帮自己一个忙,对于每一行,键入该行执行的时间。首先移除
while
循环,然后移除
while
循环。你会发现一种模式,你会更好地理解它


简单地说,if基本上是一个常数复杂性,即O(1),它不会给外循环增加任何东西。您的wile将为您提供
O(n)
,其余语句将分别为您提供
O(1)
O(1)
O(1)
。最后它将是
O(n)+O(1)+O(1)+O(1)
。。。这将导致
O(n)
总体复杂性

帮自己一个忙,对于每一行,输入该行执行的时间。首先移除
while
循环,然后移除
while
循环。你会发现一种模式,你会更好地理解它


简单地说,if基本上是一个常数复杂性,即O(1),它不会给外循环增加任何东西。您的wile将为您提供
O(n)
,其余语句将分别为您提供
O(1)
O(1)
O(1)
。最后它将是
O(n)+O(1)+O(1)+O(1)
。。。这将导致
O(n)
总体复杂性

循环迭代n次,并在每一步检查if条件。如果条件为true,则执行if语句,该语句花费恒定的时间。
由于恒定时间对总体复杂度没有影响,因此仍然是O(n)。

循环迭代n次,并在每一步检查if条件。如果条件为true,则执行if语句,该语句占用恒定时间。 由于不存在恒定时间对总体复杂度的影响,它仍然是O(n)