首页 > 编程资源分享区 > C/C++源代码共享 > 插入法将有序数组随机打乱
2007
12-16

插入法将有序数组随机打乱

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include<math.h>
#define  N   6
void main()
{
    int i,j,a,A[N],k,t;
 long b;
 srand((unsigned) time(&b));
 for(i=0;i<N;i++)A[i]=i;
 for(i=0;i<10000;i++)
 {
  a=rand()%(N-1);
  if(a==0)continue;
  if(a==N-1)continue;
  if(a<N/2)
  {   k=0;
   while(a>=0)
   {
       t=A[a];
    j=a;
    do
    {
     A[j]=A[j+1];
     j++;
    }while(j<=N-2-k);
    A[N-2-k]=t;
    k+=2;
    a–;
   }
  }
  else
  {
   k=0;
   while(a<=N-1)
   {
    t=A[a];
    j=a;
    do
    {
     A[j]=A[j-1];
     j–;
    }while(j>=1+k);
     A[1+k]=t;
    k+=2;
    a++;
   }


  }
 }


    for(i=0;i<N;i++)printf(“A[%d]=%d\n”,i,A[i]);
}


留下一个回复