是的,你是对的。
这是因为numberOfElementsInA + numberOfElementsInB <= 2 * numberOfElementsInA, 并且根据大 O 符号的定义,它使得它O(numberOfElementsInA)(with c=2, and for each N)
编辑:确切地说,每个循环都是O(numberOfElementsInSet_i)- 因此每个循环都有常数c_i, N_i,因此T(loop_i) <= numberOfElementsInSet_i * c_i对于每个numberOfElementsInSet_i > N_i.
因此:
for each numberOfElementsInSet_1 > max{N1,N2}:
T(loop_1) + T(loop_2) <= numberOfElementsInSet_1 * c_1 + numberOfElementsInSet_2 * c_2
<= numberOfElementsInSet_1 * c_1 + numberOfElementsInSet_1 * c_2 //set1 is bigger
<= 2 * numberOfElementsInSet_1 * max{c_1,c_2}
现在我们有一个正式的证明,循环一起也O(numberOfElementsInSet_1)与N = max{N1,N2}和c = max{c_1,c_2} * 2