Big O表示法 - 两个数组删除内部数组元素

时间:2018-04-24 21:55:48

标签: big-o notation

我对这样一个例子的大O符号有点困惑(这不是一个真正的编程语言,只是一个简单的例子):

for each entry in arraylist1
    for each entry in arraylist2
       if condition met
          remove element from arraylist2 

即使这个代码有两个循环,我也不认为它是O(n ^ 2),因为对于每个条目,我可以删除n个元素,这将大大减少迭代次数。

当我已经处理或在给定条件下找到阵列上的元素但需要继续时,我通常会使用这种算法。

编辑:现在我想到,最糟糕的情况是只删除第一个循环的最后一次迭代中的所有元素,从而产生“真”O(n ^ 2)。

0 个答案:

没有答案