Mam następujący algorytm, który wyszukuje duplikaty i usuwa je:
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;
}
Usiłuję znaleźć najgorszą złożoność tego przypadku. Wiem, że jest to połączenie nlog(n)
, a w mojej pętli for iteruję cały zestaw danych, więc byłoby to liczone jako n
. Nie jestem jednak pewien, co zrobić z tymi liczbami. Czy powinienem je po prostu zsumować? Gdybym to zrobił, jak miałbym to zrobić?