所以我现在正在学习大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/

10-12 14:14