风沙星辰txt:请教高手

来源:百度文库 编辑:高校问答 时间:2024/05/08 08:29:34
我写了一个舍伍德算法,如下:
#include "stdafx.h"
#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
#define maxsize 100
const unsigned long maxshort=65536L;
const unsigned long multiplier=1194211693L;
const unsigned long adder=12345L;
class RandomNumber
{
private:
unsigned long randSeed;
public:
RandomNumber(unsigned long s=0);
unsigned short Random(unsigned long n);
double fRandom(void);
};
RandomNumber::RandomNumber(unsigned long s)
{
if(s==0) randSeed=time(0);------------------(1)
else randSeed=s;
}
unsigned short RandomNumber::Random(unsigned long n)
{
randSeed=multiplier*randSeed+adder;
return (unsigned short)((randSeed>>16)%n);
}
double RandomNumber::fRandom(void)
{
return Random(maxshort)/double(maxshort);
}
void swap(int *p,int *q)
{
int temp;
temp=*p;
*p=*q;
*q=temp;
}
void main()
{
static RandomNumber rnd;
int i,j,l,r,k,n,pivot;
int a[maxsize];
printf("请输入数组元素的个数:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("请输入第%d个元素的值:",i);
scanf("%d",&a[i]);
}
printf("请输入起始位置:");
scanf("%d",&l);
printf("请输入结束位置:");
scanf("%d",&r);
if(l>=r) printf("您输入的位置不合法!");
else
{
printf("请问您要选择第几小的元素:");
scanf("%d",&k);
while(true)
{
i=l;
j=rnd.Random(r-l);
swap(&a[i],&a[j]);
i=l+1;
j=r;
pivot=a[l];
while(true)
{
while(a[i]<pivot) i++;
while(a[j]>pivot) j--;
if(i>=j) break;
swap(&a[i],&a[j]);
}
if(j-l==k) printf("%d",pivot);
a[l]=a[j];
a[j]=pivot;
if(j-l<k)
{
k=k-j+l;
l=j+1;
}
else r=j-1;
}
}
}

但是他说这个时间TIME没有定义,请问一下应该怎么定义啊,谢谢!
错误信息:D:\Program Files\Microsoft Visual Studio\MyProjects\hezonglin\hezonglin.cpp(23) : error C2065: 'time' : undeclared identifier

少了#include "time.h"吧?