Как подсчитать количество операций, включая оператор if else?

Скажем, я вычислял время выполнения следующего псевдокода, используя подсчет операций:

if(a > b) then    [1 operation]
    return a-b    [1 operation]
else
    return b-a    [1 operation]

Могу ли я подсчитать общее количество операций, включая оба оператора return (3 операции)? Или, поскольку мы обычно рассматриваем наихудший сценарий при расчете времени выполнения, не буду ли я считать первый оператор return операцией, поскольку он не будет выполняться в наихудшем сценарии (2 операции)?


person KOB    schedule 26.11.2015    source источник
comment
@cricket_007 я подумал, что это будет иметь смысл. Спасибо   -  person KOB    schedule 26.11.2015


Ответы (1)


При профилировании кода необходимо учитывать условия ветвления, такие как циклы и операторы if. Каждая ветвь кода заканчивается оператором return.

Итак, в вашем коде вы делаете две ветки, как только нажимаете if. Обе ветви имеют одинаковое количество операций, но одно вычитание.

По сути, наихудший случай — это самый длинный путь кода к одному оператору возврата.

person OneCricketeer    schedule 26.11.2015