头文件 <cstdlib>
rand,srand函数和RAND_MAX常量
RAND_MAX 在Windows系统中为32767 ,在类Unix系统中为2147483647
rand()函数返回一个0~RAND_MAX的随机整数
srand(seed)函数 接受unsigned int 类型的参数seed,以seed为随机种子,rand()基于此生成随机数,如果不写srand函数,则种子默认为1
setw(int n)是c++中在输出操作中使用的字段宽度设置,设置输出的域宽,n表示字段宽度。只对紧接着的输出有效,紧接着的输出结束后又变回默认的域宽。
若要产生随机实数,先产生较大的随机整数
#include <iostream>
#include <cstdlib>
#include <sstream>
#include <cstring>
#include <iomanip>
using namespace std;
const int N=1000;
//数据交换函数
void Swap(int& a, int& b)
{
int temp = a;
a = b;
b = temp;
}
//冒泡排序
void BubbleSort(int A[], int &n)
{
int i, j, last;
i = n-1;
while(i >0)
{
last =0;
for(j =0; j<i; j++)
if(A[j+1] < A[j])
{
Swap(A[j], A[j+1]);
last =j;
}
i =last;
}
}
int main(void)
{
srand(time(NULL));
int i,j=0;
int ia[N];
cout<<"原数组:"<<endl;
for(i=0;i <N;++i)
{
ia[i] = rand() % N;
}
for(i=0;i <N;++i)
{
cout<<setw(6)<<ia[i];
j++;
if(j%10==0)
cout<<endl;
}
cout<<endl;
int n = sizeof ia /sizeof ia[0];
BubbleSort(ia, n);
cout << "冒泡排序后:"<<endl;
for(i=0;i <N;++i)
{
cout<<setw(6)<<ia[i];
j++;
if(j%10==0)
{
cout<<endl;
}
}
return 0;
}
|