【问题标题】:for loop and if statement positioning efficiencyfor循环和if语句定位效率
【发布时间】:2013-07-16 02:48:19
【问题描述】:

我正在用for循环和if语句做一些简单的逻辑,我想知道以下两个定位哪个更好,或者两者之间是否存在显着的性能差异。

案例一:

if condition-is-true:
   for loop of length n:
      common code
      do this
else:
   another for loop of length n
      common code
      do that

案例 2:

for loop of length n:
   common code
   if condition-is-true:
      do this
   else:
      do that

基本上,我有一个 for 循环,需要根据条件稍微不同地执行,但无论如何,在 for 循环中都需要发生某些事情。我更喜欢第二个,因为我不必重复两次 commond 代码,但我想知道案例 1 的性能是否会更好?

我知道就大 O 表示法而言,这并不重要,因为 if-else 语句无论如何都是一个常数,但我想知道一个不太大的数据集(也许 n = 几个数千),如果这两种情况有所不同。

谢谢!

【问题讨论】:

  • KISS 显然表明 2 更好。通常是因为重构。编译器可能不够聪明,无法自行找出常见的东西。

标签: performance if-statement for-loop


【解决方案1】:

第一个很好,因为不需要每次都检查条件,但在第二种情况下,您必须在非常迭代时检查条件。但是您的代码长度会很长。如果代码大小很重要,那么将通用代码放入方法中,然后只调用方法而不是通用代码块。

【讨论】:

    猜你喜欢
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 2015-07-20
    • 2019-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多