为什么此代码的Arraylist和LinkedList的大O将与O(MN)相同?
PS:我不完全理解这段代码。任何解释都将不胜感激。
public static int Count( List<Integer> lst1, List<Integer> lst2) {
Iterator<Integer> itr1 = lst1.iterator();
int count=0;
while ( itr1.hasNext() ) {
Integer x = itr1.next();
Iterator<Integer> itr2 = lst2.iterator();
while (itr2.hasNext())
if (x.equals(itr2.next()))
count++;
}
return count;
}
答案 0 :(得分:1)
遍历这两个列表会花费相同的时间复杂度。
但是与ArrayList相比,LinkedList中的删除速度更快。 因为ArrayList基于索引工作而LinkedList适用于地址跟踪。