簡體   English   中英

小於 N 的大 O?

[英]big O that is less than N?

完全自學(和 StackOverflow),我是 Big-O 符號的新手,需要在一些即將到來的采訪中更好地理解它。

我的問題是當復雜度小於N時,如何在 Big-O 中進行注釋? 例子是一個質數計算器,它檢查每個整數的余數,直到N/2 ,因為如果我們發現沒有小於一半的除數,那么上半部分肯定沒有除數。

那么,就符號而言,是O(N/2)還是N變為N = N/2

def primecheck(num):
  i = 2
  while i <= ( num // 2 ):
    if not (num % i):
      return False
    i += 1
  return True

Big-O 表示法旨在忽略常數因素。 只要k是一個常數(意思是一些與N無關的東西,例如 1/2、1/3、1、2、3 等),那么O(kN)含義與O(N)完全相同。

Big-O表示法旨在表達僅變量的復雜性,在這種情況下忽略所有常量,因此n/2表示與4n相同。 然而質數檢查是一個只需要檢查到sqrt(n)的問題,所以問題只是O(sqrt(n))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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