返回信息流for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
if
(
i == 0 || j == 0 || (i == 1 && j == 1)
)
{
scalar A = 0.0;
scalar B = 0.0;
for (int alpha = 0; alpha < 3; alpha++)
{
for (int beta = 0; beta < 3; beta++)
{
A += ....
B += ....
}
}
}
}
}
这个代码有办法执行的更快么
这是一条镜像帖。来源:北邮人论坛 / cpp / #99621同步于 2019/11/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
for循环更快的执行
sharonyue
2019/11/28镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 crok 的大作中提到: 】
: 这循环规模也不大啊,有必要考虑让循环更快执行吗?如果要优化的话不应该是从算法角度考虑吗
做计算的。这个循环要执行几百万次
i == 0 || j == 0 || (i == 1 && j == 1)
兄弟,我理解这是你需要做的case
我不明白你为什么要把i,j所有case用n**2全访问一边
i=0,j=0,1,2,3,....
j=0,i=0,1,1,2,....
这已经涵盖了你要做的case吧。。。
你这i和j的值对if里面也没啥用吧,也就是执行if里面的东西10次,直接改成循环10次执行if里面的东西就行。
同理,alpha和beta的也没看出有啥用,改成执行9次好了。
还是上完整代码吧,看看能不能并发跑,这样愣算优化效果没那么大的。
【 在 a940100079 的大作中提到: 】
: i == 0 || j == 0 || (i == 1 && j == 1)
: 兄弟,我理解这是你需要做的case
: 我不明白你为什么要把i,j所有case用n**2全访问一边
: ...................
好像说的有点道理 是这样 我这个是个二维数组 这种
[code]
00 01 02 03 04
10 11 12 13 14
20 21 22 23 24
30 31 32 33 34
40 41 42 43 44
[/code]
我对它访问的时候,只对其中的
[code]
00 01 02 03 04
10 11
20
30
40
[/code]
做改动
就写的
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
if
(
i == 0 || j == 0 || (i == 1 && j == 1)
)
{
}
}
}
请问这个有优化的可能么 下面这种更快么?
for (int i = 0; i < 5; i++)
{
访问00 01 02 03 04
}
for (int i = 0; i < 5; i++)
{
访问00 10 20 30 40
}
访问11
很明显
快多咯
【 在 sharonyue 的大作中提到: 】
:
: 好像说的有点道理 是这样 我这个是个二维数组 这种
: [code]
: ...................