大O表示法与itertools.product和for循环进行比较

时间:2018-11-22 02:13:35

标签: python python-3.x

我有两个整数数组,我希望两个数组中任何元素之间的最小绝对差最小。我有两种不同的方式来做。两者看起来几乎相同,但是对于两种方法,我不明白什么是BigO。 他们都是O(mk)吗?

list1 = [1,3,7,12]
list2 = [11,39,9,-1]
from itertools import product
def method1(l1,l2):
    return min([abs(x[0]-x[1]) for x in product(l1, l2)])

def method2(l1,l2):
    num = []
    for i in l1:
        for j in l2:
            num.append(abs(i-j))
    return min(num)
print(method1(list1,list2))
print(method2(list1,list2))

1 个答案:

答案 0 :(得分:0)

是的。两种方法完全相同

方法1的建议:

def method1(l1,l2):
    return min([abs(a - b) for a, b in product(l1, l2)])