所以我现在正在学习大O符号,我不知道如何计算出我下面(故意效率低下)算法的大O是什么:
def getPrimes(n):
primes = [2]
for i in range(3, n+1):
remainder = True
for j in primes:
if(i % j == 0):
remainder = False
if(remainder == True):
primes.append(i)
return primes
内部for循环将运行的次数将根据列表“primes”中有多少项而增加。那么,这对计算出大o有什么影响呢?
最佳答案
检查Pi(n) function。它的近似是n/Ln(n)。
整体算法(一种实现的筛子)复杂度
关于algorithm - 此素数搜索算法的复杂性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27092856/