产生随机的排列:
permute()函数的功能是:打乱数组的顺序
Random()函数的功能是:产生一个0 —> n-1的随机数
swap()函数的功能是:交换数组里第i个和第j个元素的值
//功能:产生随机的排列
#include <stdio.h>
#include<stdlib.h>
//声明函数
void permute(int array[], int n);
int Random(int n);
void swap(int A[], int i, int j);
//Randomly permute the n values of array
void permute(int array[], int n)
{
for (int i = n; i > 0; i--)
{
swap(array, i - 1, Random(i));
}
}
//Return a random value in rang 0 to n-1
int Random(int n)
{
return rand() % (n);
}
//swap two elements in a generic array
void swap(int A[], int i, int j)
{
int temp = A[i];
A[i] = A[j];
A[j] = temp;
}
int main()
{
int a[10];
int i;
for (i = 0; i < 10; i++)
{
a[i] = Random(i+9);
}
permute(a, 10);
for (i = 0; i < 10; i++)
{
printf("%d\t",a[i]);
}
return 1;
}