作者在 2010-01-12 21:08:31 发布以下内容
网上很多都是O(n^2)的,而且一旦数值大上去后就出不来结果了,因为是纯暴力生成的,数大后很可能后出现死角,而且说O(n^2)只是看上去而已,真正运行起来远不止这个数。
细想下也不难,只是一种思想,很多地方可以用到的。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define MAX_NUM 10
#include<stdlib.h>
#include<time.h>
#define MAX_NUM 10
int main()
{
int i, temp;
int a[MAX_NUM+1];
for(i = 0;i<=MAX_NUM;i++)
{
a[i]=i;
}
srand((unsigned)time(NULL));
for(i=MAX_NUM; i>=1; i--)
{
temp= rand()%i + 1;
printf("%3d\n",a[temp]);
a[temp]=a[i];
}
return 0;
}
{
int i, temp;
int a[MAX_NUM+1];
for(i = 0;i<=MAX_NUM;i++)
{
a[i]=i;
}
srand((unsigned)time(NULL));
for(i=MAX_NUM; i>=1; i--)
{
temp= rand()%i + 1;
printf("%3d\n",a[temp]);
a[temp]=a[i];
}
return 0;
}