addFirst(e)和removeFirst()方法的时间复杂度是多少

时间:2015-10-27 19:32:31

标签: java time-complexity

我正在攻读考试,并且通过Big Oh表示法有点理解时间复杂性。我被赋予了这个作为他们将要问什么和好奇你的想法的一个例子。我不确定这些是线性O(n)还是什么。如果你可以帮助我,这些复杂性问题中的一些让我感到困惑。提前谢谢。

public E removeFirst() {
      if (size == 0) {
        return null;
      }
      else {
        Node<E> temp = head;
        head = head.next;
        size--;
        if (head == null) {
          tail = null;
        }
        return temp.element;
}
}


    public void addFirst(E e) {
      Node<E> newNode = new Node<E>(e); 
      newNode.next = head; 
      head = newNode; 
      size++; 

      if (tail == null) 
        tail = head;
}

1 个答案:

答案 0 :(得分:1)

Big O表示法粗略地表示在最坏的情况下代码需要执行的最大次数,因为在两个函数中它都返回结果,在任何情况下只返回一次迭代,因此两个函数的最坏情况都是复杂的是O(1)即恒定时间。