#include <stdio.h>
#include "math.h"
#define max 52
void shuffle(int array[],int n);
int FindSmallestInt(int array[],int low,int high);
SwapIntElements(int array[],int p1,int p2);
main()
{
int array[max];
int i,n,j=0;
n=max;
clrscr();
printf("这个程序随机排序输出1-%d之间的整数。/n",n);
for(i=0;i<n;i++)
array[i]=i+1;
shuffle(array,n);
for(i=0;i<n;i++)
{
printf("%3d",array[i]);
j++;
if(j==10)
{
printf("/n");
j=0;
}
}
getch();
}
void shuffle(int array[],int n)
{
int lh,rh;
for(lh=0;lh<n;lh++)
{
rh=FindSmallestInt(array,lh,n-1);
SwapIntElements(array,rand()%n,rh);
}
}
int FindSmallestInt(int array[],int low,int high)
{
int i,spos;
spos=low;
for(i=low;i<=high;i++)
{
if(array[i]<array[spos])
spos=i;
}
return(spos);
}
SwapIntElements(int array[],int p1,int p2)
{
int tmp;
tmp=array[p1];
array[p1]=array[p2];
array[p2]=tmp;
}