这是如何计算包括';如果…否则';陈述
我不明白海报上的答案,如果有人能澄清,我将不胜感激。
我有带操作次数的代码:
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。但由于这是一个常数,我们可以简单地得出结论,它需要恒定的时间。