Big O运行时 - indexOf LinkedList / ArrayList

时间:2015-10-04 16:46:00

标签: arraylist linked-list runtime big-o indexof

我在indexOfLinkedList中考虑了Big O运行时和ArrayList方法。我如何能够提出Big O运行时假设,如何在链接列表中与数组列表相比有什么不同?

LinkedList indexOf()

public int indexOf(Object value)
{
    int results = -1;
    boolean done = false;
    Node<E> ref = head.next;
    for(int i = 0; i < size && !done; i++)
    {
        if(value.equals(ref.value))
        {
            results = i;
            done = true;
        }
        ref = ref.next;
    }
    return results;
}

ArrayList indexOf()

if (o == null) {
            for (int i = 0; i < size; i++)
                if (Values[i]==null)
                    return i;
        } else {
            for (int i = 0; i < size; i++)
                if (o.equals(Values[i]))
                    return i;
        }
        return -1;

如果对某些人来说这是一个微不足道的问题,我很抱歉,但我需要了解如何提出方法的Big O运行时。

1 个答案:

答案 0 :(得分:2)

在这两个实现中,除了一次遍历列表一个元素并将其与您正在寻找的值进行比较之外,您没有比这更好的事情了。在最坏的情况下,您将浏览整个列表,给出O(n)的复杂性。