Big O Notation - два массива, удаляющие внутренние элементы массива - PullRequest
0 голосов
/ 25 апреля 2018

Меня немного смущает вопрос о том, что такое большая буква 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).

...