Эффективная сортировка элементов массива в Java - PullRequest
1 голос
/ 14 октября 2010

Я просто хотел узнать, каков наилучший способ разупорядочить элементы в упорядоченном массиве в Java, спасибо

Ответы [ 3 ]

6 голосов
/ 14 октября 2010

Я думаю, вы хотите Collections.shuffle(List)?Если нет, вам нужно будет предоставить нам более подробную информацию о том, что вы пытаетесь сделать.

2 голосов
/ 14 октября 2010

Вы хотите перетасовать этот массив, используя хороший алгоритм .

Я бы доверял Collections # shuffle для правильной реализации.Если вам нужно, чтобы он работал с массивом напрямую, реализуйте алгоритм в своем собственном вспомогательном методе.

1 голос
/ 14 октября 2010

Я не знаю много Java, поэтому может быть лучше, но это будет хорошо.

Перестановка Фишера-Йейтса из Википедии:

static Random rng = new Random();
public static void shuffle(int[] array) {
    // i is the number of items remaining to be shuffled.
    for (int i = array.length; i > 1; i--) {
        // Pick a random element to swap with the i-th element.
        int j = rng.nextInt(i);  // 0 <= j <= i-1 (0-based array)
        // Swap array elements.
        int tmp = array[j];
        array[j] = array[i-1];
        array[i-1] = tmp;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...