我正在使用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
案例2:
for loop of length n:
common code
if condition-is-true:
do this
else:
do that
基本上,我有一个for循环需要根据条件稍微不同地执行,但是无论如何都需要在for循环中执行某些东西。我更喜欢第二个,因为我不必重复两次commond代码,但我想知道情况1是否会表现得更好?
我知道在big-O表示法方面它并不重要,因为if-else语句无论如何都是常量,但我真实想知道数据集不是太大(也许n =少数)成千上万),如果这两个案例有所不同。
谢谢!
答案 0 :(得分:2)
第一个是好的,因为不需要每次检查条件,但在第二种情况下,你必须在非常迭代时检查条件。但是你的代码长度会很长。如果代码大小很重要,那么将公共代码放入方法中,只需调用方法而不是公共代码块。