如果我有例如:
if(a<50){A}
if(a<20){B}
if(a<10){C}
对于这个集合,数字代表某个语句运行的时间百分比,并且它们都不是互斥的,我应该以什么方式安排我的if语句,以使程序尽可能高效? 我想要实现的是,如果a = 5我只想要C运行,如果我得到15,我只想要B运行。
我很清楚如何创建它,我想要的是最有效的方法。假设A,B,C ......采用相同的计算方式。此外,没有副作用被忽略,因为如果我运行C,它将覆盖A和B所做的。
谢谢
答案 0 :(得分:0)
你的帖子是自相矛盾的。你说案件是:
不相互排斥
然后你说:
如果a = 5我只想要C运行,如果我得到15,我只想要B运行
是互斥的,你可以这样做:
if(a<10){C} // do C and only C if a < 10
else if(a<20){B} // do B and only B if a >= 10 && a < 20
else if(a<50){A} // do A and only A if a >= 20 && a < 50
答案 1 :(得分:0)
这是微优化。您需要单独比较极小部分代码的性能。任何体面的编译器都会广泛地优化它。即使你可以改善表现,你也可能浪费了更多的时间来锻炼,而不是你在恢复表现方面的恢复。与所有优化一样,唯一可以确定的方法是分析不同的选项。对于此代码,这不值得练习。