У меня есть следующий алгоритм, который находит дубликаты и удаляет их:
public static int numDuplicatesB(int[] arr) {
Sort.mergesort(arr);
int numDups = 0;
for (int i = 1; i < arr.length; i++) {
if (arr[i] == arr[i - 1]) {
numDups++;
} }
return numDups;
}
Я пытаюсь найти наихудший случай сложности времени. Я знаю, что mergesort есть nlog(n)
, и в моем цикле for я выполняю итерацию по всему набору данных, чтобы это считалось n
. Я не уверен, что делать с этими числами, хотя. Должен ли я просто сложить их вместе? Если бы я это сделал, как бы я это сделал?