2010-10-14 2 views
1

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

+1

По беспорядку, я предполагаю, что вы имеете в виду перетасовку? – spender

+1

http://stackoverflow.com/questions/180979/using-collections-api-to-shuffle –

ответ

6

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

+0

И вы можете быть уверены, что алгоритм перетасовки Collections.shuffle() довольно хорош. Стандартный JavaSE api невероятно хорошо протестирован. (Whoa ... не хотел звучать как продажа речи) –

+0

Это было именно то, что я искал, спасибо людям! –

1

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

Fisher-Yates shuffle из Википедии:

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; 
    } 
} 
2

Вы хотите, чтобы перетасовать этот массив с помощью a good algorithm.

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

Смежные вопросы