У мене є наступний алгоритм, який знаходить дублікати та видаляє їх:
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;
}
Я намагаюся знайти найгірший час у цьому. Я знаю, що є злиття nlog(n)
, і в циклі моєї ітерації я повторюю весь набір даних, щоб вважати, як n
. Я не впевнений, що робити з цими номерами. Чи варто просто підсумувати їх разом? Якби я це робив, як би це зробити?