![](/img/trans.png)
[英]Can someone help me figure out how to print the options in this dropdown?
[英]Can someone help me figure out the time complexity of my Algorithm?
假設len(arrayOne) = n
和len(arrayTwo) = m
i = 0 and j = 0
從一開始,您就有一個外部 while 循環,它會運行多長時間並不是很明顯。
在 while 循環中,您會做一些持續的工作,然后檢查是否j == m
。 這不是真的,所以j
增加了m
次。
現在j == m
,您增加i
並設置j = -1
。 這意味着j
將再次增加m
次。 i
遞增, j
重置。
j
將重置n
次。
所以這里的內循環可以用m
表示。 和外循環n
。
因此該算法的運行時間復雜度為 O(n * m)
為什么哦為什么不把這段代碼寫成:
minDiff = float("inf")
for value1 in arrayOne:
for value2 in arrayTwo:
minDiff = min(minDiff, abs(value1 - value2))
感覺這段代碼正在竭盡全力隱藏它是一對嵌套迭代的事實,而且它的時間很明顯。
這也意味着它可以在 Python 中寫成一行:
minDiff = min(abs(value1 - value2) for value1 in arrayOne for value2 in arrayTwo)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.