Ho il seguente algoritmo che trova i duplicati e li rimuove:
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;
}
Sto cercando di trovare la peggiore complessità temporale di questo. So che mergesort è nlog(n)
, e nel mio ciclo for sto iterando sull'intero set di dati in modo che contasse come n
. Non sono sicuro di cosa fare con questi numeri. Dovrei semplicemente sommarli? Se dovessi farlo, come lo farei?