簡體   English   中英

時間復雜度 O(n) 是如何計算的?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM