产生随机的排列

产生随机的排列:

  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;
}

posted @ 2011-03-24 19:50  涵曦  阅读(447)  评论(0编辑  收藏  举报