为什么这个算法的 Big-O 是 N^2*log N
2022-09-03 03:30:42
将数组 a 从 a[0] 填充到 a[n-1]:生成随机数,直到得到一个不在前面的索引中。
这是我的实现:
public static int[] first(int n) {
int[] a = new int[n];
int count = 0;
while (count != n) {
boolean isSame = false;
int rand = r.nextInt(n) + 1;
for (int i = 0; i < n; i++) {
if(a[i] == rand) isSame = true;
}
if (isSame == false){
a[count] = rand;
count++;
}
}
return a;
}
我以为它是N^2,但它显然是N^2logN,我不确定什么时候考虑log函数。