重複を見つけて削除する次のアルゴリズムがあります:
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)
し、私のforループではデータセット全体を反復処理しているので、それはとしてカウントされn
ます。しかし、これらの数値をどうするかはわかりません。合計するだけですか?もしそうするなら、どうすればいいですか?