중복을 찾아서 제거하는 다음 알고리즘이 있습니다.
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;
}
최악의 경우 시간 복잡성을 찾으려고합니다. 나는 mergesort가라는 것을 알고 nlog(n)
있으며 내 for 루프에서 전체 데이터 세트를 반복하여로 계산합니다 n
. 그래도이 숫자로 무엇을해야할지 잘 모르겠습니다. 같이 정리하면 되나요? 그렇게하려면 어떻게해야합니까?