0

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

情况1:

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

案例二:

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

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

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

谢谢!

4

1 回答 1

2

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

于 2013-07-16T02:57:56.357 回答