2011-04-29 55 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); 
相关问题