Tengo el siguiente algoritmo que encuentra duplicados y los elimina:
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;
}
Estoy tratando de encontrar la peor complejidad de tiempo en este caso. Sé que mergesort es nlog(n)
, y en mi bucle for estoy iterando sobre todo el conjunto de datos para que eso cuente como n
. Sin embargo, no estoy seguro de qué hacer con estos números. ¿Debería resumirlos juntos? Si tuviera que hacer eso, ¿cómo lo haría?