Заполните массив a от [0] до [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, и я не уверен, когда рассматривается функция журнала.