随机化一个数组的元素

  1. void randShuf(int* data,int size){
  2.     const int MAXBIT=15;
  3.     const int MAXRANDOM=(1U<<MAXBIT)-1;
  4.     int* next=data;
  5.     for(int base=2;++next!=data+size;base++){
  6.         unsigned int _Rm=MAXRANDOM;
  7.         unsigned int step=::rand()&MAXRANDOM;
  8.         while(MAXRANDOM<base){
  9.             _Rm=_Rm<<MAXBIT | MAXRANDOM;
  10.             step=step<<MAXBIT | (::rand()&MAXRANDOM);
  11.         }
  12.         iter_swap(next,(data+step%base));
  13.     }
  14. }

你可能感兴趣的:(随机化一个数组的元素)