计算IF-ELSE的操作数



这是如何计算包括';如果…否则';陈述

我不明白海报上的答案,如果有人能澄清,我将不胜感激。

我有带操作次数的代码:

if (a < b)              - 1 operation
print("Hello")      - 1 operation
print("World")      - 1 operation
else
print("Goodbye")    - 1 operation
print("World")      - 1 operation
print("Sad")        - 1 operation

案例1:如果a=5,b=6,操作总数是3吗?

案例2:如果a=6,b=5,那么操作总数是4吗?

或者手术总数是7次?

如果条件满足"if"或"else",那么我们只计算运算次数是正确的吗?

您对情况1和情况2都是正确的。

操作的总数将取决于接收到的输入。

因此,在最坏的情况下(情况2:其中a>b(,操作的总数将是4。

最佳情况(情况1:其中a<b(是if条件为真时,因为这需要3次运算(比情况2少1次运算(。

在任何时候,该代码的操作总数都不会超过4,因为只有一个或另一个条件得到满足。不可能同时满足这两个条件。

取if语句中的条件并计算其复杂度,如果它是一个比较运算,则它是O(1(或ω1,因此也是θ1。你也不把要比较的数字算作运算。现在开始计算复杂性部分,除非它涉及或依赖于可以在某个变量中定义的某个函数,否则我们将其设为O(1(,这意味着恒定的时间,因此不会过多地关注正在发生的确切操作。现在,a或b是否更大取决于a和b的值。在这种情况下,最大值为4。但由于这是一个常数,我们可以简单地得出结论,它需要恒定的时间。

最新更新