Using register to cash visa# Money - 海外理财
h*b
1 楼
【 以下文字转载自 Working 讨论区 】
发信人: htb (小牛 。。。妞。。。), 信区: Working
标 题: 问个面试问题
关键字: in
发信站: BBS 未名空间站 (Wed Jun 13 16:55:27 2012, 美东)
面试的时候问了下面的问题,没有回答上来:
下面的程序当N=64*1024的时候,run time是100 msec,
当N=70*1024的时候,time变成了74 msec。为什么N越大run time
越小?
如果run多次的时候,run time可能变成:
N=64: 100, 76, 500, 80, 90
N=70: 74, 80, 300, 63, 80
为什么会出现500/300这突变的数字?
把a,b,c,d,e初始化成0也会出现同样的现象。
#define N 64*1024
int a[N], b[N], c[N], d[N], e[N];
int main()
{
int i;
for (i = 0; i a[i] = b[i] + c[i] + d[i] + e[i];
return 0;
}
发信人: htb (小牛 。。。妞。。。), 信区: Working
标 题: 问个面试问题
关键字: in
发信站: BBS 未名空间站 (Wed Jun 13 16:55:27 2012, 美东)
面试的时候问了下面的问题,没有回答上来:
下面的程序当N=64*1024的时候,run time是100 msec,
当N=70*1024的时候,time变成了74 msec。为什么N越大run time
越小?
如果run多次的时候,run time可能变成:
N=64: 100, 76, 500, 80, 90
N=70: 74, 80, 300, 63, 80
为什么会出现500/300这突变的数字?
把a,b,c,d,e初始化成0也会出现同样的现象。
#define N 64*1024
int a[N], b[N], c[N], d[N], e[N];
int main()
{
int i;
for (i = 0; i
return 0;
}