酷壳上的一道面试题

本文通过案例探讨了在不同代码结构下执行效率的差异,深入解析了影响执行速度的关键因素,帮助开发者理解如何优化代码性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

又一个有趣的面试题里看到的一道题目,原因看过《深入计算机体系结构》应该就能明白。

题目如下

有两个相同功能代码如下,请在在A,B,C是什么的情况下,请给出三个原因case 1比case 2快,还有三个原因case 2会比case 1要执行的快。(不考虑编译器优化)

case 1
for (i= 0; i<N; ++i){
A;
B;
C;
}
case 2
for (i= 0; i<N; ++i){
A;
}
for (i= 0; i<N; ++i){
B;
}
for (i= 0; i<N; ++i){
C;
}
我的解法

 

int length =  10000;
int[,] a =  new  int[
length , 
length ];
int[,] b =  new  int[length, length];
int[,] c =  new  int[length, length];
Stopwatch watch =  new Stopwatch();
watch.Start();
for ( int i =  0; i < length; i++)
{
int temp =  0;
temp = a[i, i];
temp = b[i, i];
temp = c[i, i];
}
watch.Stop();
Console.WriteLine(“ case  1:” + watch.ElapsedMilliseconds);
watch.Restart();
for ( int i =  0; i < length; i++)
{
int temp =  0;
temp = a[i, i];
}
for ( int i =  0; i < length; i++)
{
int temp =  0;
temp = b[i, i];
}
for ( int i =  0; i < length; i++)
{
int temp =  0;
temp = c[i, i];
}
watch.Stop();
Console.WriteLine(“ case  2:” + watch.ElapsedMilliseconds);

 


转载于:https://www.cnblogs.com/brightwang/archive/2012/05/12/2497603.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值