最佳答案
来自 维基百科:
算法的复杂性是
O(n(logn)(loglogn))
位操作。
你是怎么知道的?
复杂性包括 loglogn
术语,这告诉我在某个地方有一个 sqrt(n)
。
假设我在前100个数字(n = 100
)上运行筛选器,假设将数字标记为 Composite 需要固定的时间(数组实现) ,那么我们使用 mark_composite()
的次数类似于
n/2 + n/3 + n/5 + n/7 + ... + n/97 = O(n^2)
为了找到下一个质数(例如,在划掉所有 5
的倍数后跳到 7
) ,操作的次数应该是 O(n)
。
复杂度是 O(n^3)
.你同意吗?