2017-02-20 16 views
0

Это написано, чтобы получить пересечение L1 и L2.Что такое время выполнения BigO этого фрагмента кода? Просто хочу подтвердить

while(iter1.hasNext()&&iter2.hasNext()){ 
     element1 = iter1.next(); 
     element2 = iter2.next(); 
     int result; 
     while(element1 != null && element2 != null){ 
      result = element1.compareTo(element2); 
      if(result == 0){ 
       L3.add(element1); 
      } 
     } 
    } 

Это заказ (n^2)?

ответ

1

Это будет просто O (n). Внутренний цикл «while» никогда не будет повторяться, потому что условие, от которого оно зависит, element1 и element2 не меняются внутри него. Если вы когда-нибудь войдете в этот вложенный цикл while, вы никогда не уйдете.

+0

Фактически, этот алгоритм не обеспечивает пересечения между двумя наборами. – Hackerman