哪个运算符更强大加(+)或增量(++)

时间:2016-04-10 18:21:55

标签: complexity-theory

s=0;
for(int i=0;i<50;i++)
{
s=s+1;
}
Modified:
s=0;
for(int i=0;i<50;i++)
{
s=s++;   //replace s=s+1
}

//它是否降低了复杂性?是++比+更强或更强。

2 个答案:

答案 0 :(得分:0)

用于提出问题的方式,没有区别。在每种情况下,您只需将变量递增1.事实上,一个不错的优化器可能会为这两段代码生成完全相同的二进制代码。但是,如果要增加1以上(例如,增加2或增加可变量),则直接执行s + = 2(或s + = increment_amount)而不是通过重复调用s ++来获得更好的性能模拟一个+ =增量。

就big-O表示而言,只要你的增量是一个常数,技术上没有大O复杂性的差别,尽管你可以通过使用“+ =”重复“获得恒定的时间加速” ++“操作。如果增量不是常数 - 即,如果增量是输入长度的函数 - 则大O复杂度也会发生变化。

答案 1 :(得分:0)

就复杂性而言,“s ++”与“s = s ++”相同,因此“s ++”是最不复杂的。 “++”的目的是简化将变量递增1的常见操作。也许你正在努力解决“++”的优雅问题,我希望这会有所帮助。