Сложность оператора if внутри или снаружи цикла for - PullRequest
1 голос
/ 22 января 2020

Давайте сравним это:

for path in filePaths :
    if(self.module!=organizer and self.module!=decoder):
        # some code with loops
    elif(self.module==decoder):
        # some code with loops

и это:

if(self.module!=organizer and self.module!=decoder):
    for path in filePaths :
        # some code with loops
elif(self.module==decoder):
    for path in filePaths :
        # some code with loops

Какой из них наиболее эффективен и почему?

1 Ответ

3 голосов
/ 22 января 2020

Они оба имеют сложность O (n), но последняя более эффективна. Поскольку self.module не изменяется во время выполнения l oop, нет смысла проверять его на каждой итерации.

...