Там у меня есть метод в java, который рандомизирует число целых чисел в массиве. Но это занимает слишком много времени, я пытаюсь найти более быстрый способ сделать это, я думаю, что алгоритм Yates Yates является решением, но я не уверен, как реализовать это с помощью моего кода.Реализация алгоритма Fisher Yates Алгоритм
protected void randomise() {
int[] copy = new int[getArray().length];
// used to indicate if elements have been used
boolean[] used = new boolean[getArray().length];
Arrays.fill(used,false);
for (int index = 0; index < getArray().length; index++) {
int randomIndex;
do {
randomIndex = getRandomIndex();
} while (used[randomIndex]);
copy[index] = getArray()[randomIndex];
used[randomIndex] = true;
}
for (int index = 0; index < getArray().length; index++) {
getArray()[index] = copy[index];
}
}
/*
* A method which prints out the list of nubers
*/
public static void main(String[] args) {
RandomListing count = new SimpleRandomListing(1000000);
System.out.println(Arrays.toString(count.getArray()));
}
Я видел это раньше. Это домашнее задание? – vz0
Вы в конечном итоге использовали любой из ответов? Потому что, если вы это сделали, отметьте ответ, который вы использовали как правильно. – Gikkman