2011-04-29 51 views
0

我需要在數組中隨機排序這些值。如何做一個數組中的一個簡單的隨機排序

int [] d = new int[26]; 
     d[0]=1; 
     d[1]=5; 
     d[2]=10; 
     d[3]=25; 
     d[4]=50;  
     d[5]=75; 
     d[6]=100; 
     d[7]=200; 
     d[8]=300; 
     d[9]=400; 
     d[10]=500; 
     d[11]=750; 
     d[12]=1000; 
     d[13]=2000; 
     d[14]=3000; 
     d[15]=4000; 
     d[16]=5000; 
     d[17]=7500; 
     d[18]=10000; 
     d[19]=25000; 
     d[20]=50000; 
     d[21]=100000; 
     d[22]=250000; 
     d[23]=500000; 
     d[24]=750000; 
     d[25]=1000000; 
+0

哪種語言? – 2011-04-29 18:58:21

+0

可能的重複:http://stackoverflow.com/questions/375351/most-efficient-way-to-randomly-sort-shuffle-a-list-of-integers-in-c – 2011-04-29 18:59:43

+0

btw。 「排序」和「隨機」本質上是矛盾的,除非你在談論像Bogosort這樣的東西。 – aviraldg 2011-04-29 18:59:56

回答

0

如果您想編寫自己的函數,只需取兩個隨機索引並交換它們的值。把它放在一個循環中,並根據需要進行多次重複操作(我會說次數等於數組中元素數量的兩倍)。

在psudo代碼(因爲你還沒有指定的語言)

NUMBER_OF_SHUFFLES = 2;  
for(ix = 0; ix < NUMBER_OF_SHUFFLES * myArray.length; ix++) 
    index1 = random(myArray.length) 
    index2 = random(myArray.length) 
    temp = index1 

    myArray[index1] = myArray[index2] 
    myArray[index2] = temp 

有這樣做,以及更復雜的方式。看看這個討論:An Efficient way of randomizing an array - Shuffle code

0

如果它的Java,你可以使用

Arrays.shuffle(d); 
相關問題