[英]How the time complexity O(n) is calculated?
讓我們假設以下代碼(Python)- 數組中的領導者
def goldenLeader(A):
n = len(A)
size=0
for k in xrange(n):
if (size == 0): size += 1
value = A[k] else:
if (value != A[k]): size -= 1
else:
size += 1
candidate = -1 if (size > 0):
candidate = value leader = -1
count = 0
for k in xrange(n):
if (A[k] == candidate): count += 1
if(count>n//2): leader = candidate
return leader
所以由於我們遍歷數組 A 兩次,時間復雜度應該是 O(n + n)
但提到時間復雜度為 O(n)
怎么來的?
O 符號只關心n
的階n
(換句話說, n
的冪)。 因此,任何n
的 1 次方都被認為是O(n)
,例如O(n)
、 O(2n)
、 O(n+1)
等。
類似地, O(n^2)
、 O(n^2+2n)
等都被認為是O(n^2)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.