随机数据生成
srand((int) time(0));
/*[0,b] -->*/ rand()%100;
/*[a,b) -->*/ rand()%(b-a) + a;
/*[a,b] -->*/ rand()%(b-a) + 1 + a;
/*(a,b] -->*/ rand()%(b-a) + 1 + a;
/*[0,1] -->*/ rand()/double(RAND_MAX);
文件输入输出、常用模板(?)
// 驼峰事坏文明,,,
#include <bits/stdc++.h>
#define fName "<file-name>"
const int myArrN = 10;
const int myA = 0;
const int myB = RAND_MAX;
int a[myArrN];
bool cmp(int a, int b)
{
return a>b;
}
using namespace std;
int main()
{
freopen(fName, "w", stdout);
srand((int) (time(0)));
int n=myArrN;
for(int i=0; i<n; i++)
{
a[i] = rand()%(myB-myA) + myA;
}
sort(a,a+n,cmp); (需要有序数据时,cmp可选)
// 去重(chong)
// 去重需要先将数组变为有序的,把重复的数据放到数组最后,返回不重复最后一个数的地址
n = unique(a,a+n)-a;
random_shuffle(a,a+n); // 打乱数组
printf("%d\n", n);
for(int i=0; i<n; i++)
{
printf("%d ", a[i]);
}
printf("\n");
fclose(stdout);
return 0;
}
对于排序最差情况(如全部逆序),则可以先随机打乱数组再进行排序