Eu tenho o seguinte algoritmo que encontra duplicatas e os remove:
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;
}
Estou tentando encontrar a pior complexidade de tempo possível. Eu sei que mergesort é nlog(n)
e, no meu loop for, estou repetindo todo o conjunto de dados, para que isso conte como n
. Não tenho certeza do que fazer com esses números. Devo apenas juntá-los? Se eu fizesse isso, como faria?