You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Mairson筛空间复杂度中log(N)项来源的技术问询

问题解答

Mairson在论文《Some New Upper Bounds on the Generation of Prime Numbers》中给出的O(N logN)空间复杂度结论,是基于未做数组优化的纯双向链表实现推导的,logN项的来源可以从以下两点解释:

  • 多链表节点的总数量上界:在原始的纯链表实现中,每个质数p会维护一个独立的双向链表,存储p的所有倍数(除p自身外)。所有质数的倍数总数可以用调和级数做宽松上界估算:$\sum_{p≤N} (N/p) ≤ N * \sum_{n=2}^N (1/n) ≈ N \log N$,这里的logN就来自调和级数的近似结果。
  • 双向链表的指针开销:每个链表节点需要存储前驱和后继两个指针,总指针开销约为2倍的节点总数,即2N logN,因此空间复杂度被标记为O(N logN)。

你观察到的仅用3个O(N)数组的实现,是用数组模拟全局双向链表的优化版本:通过prev、next两个数组直接记录每个数在全局筛链表中的前后关系,再配合一个标记数组,每个数仅占用固定的数组位置,复用了空间,因此空间复杂度降为O(N)——但这是对原始算法实现的优化,并不改变Mairson原始分析中logN项的来源逻辑。

内容的提问来源于stack exchange,提问作者terrabyte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 17:40:44