首页 新闻 会员 周边 捐助

对数据压缩存储降低算法的空间复杂度

0
[已关闭问题] 关闭于 2025-10-23 20:57
 
 
“降低算法的空间复杂度”主要不是去压缩输入数据,而是削减算法在运行过程中额外申请的“工作空间”(auxiliary space)。
输入数据本身的大小通常被视为问题规模 n,属于“必须存在”的硬成本,不在复杂度优化的靶心

1. 空间复杂度到底度量什么?

S(n) = 输入空间 + 输出空间 + 辅助空间
  • 输入空间:题目给的,默认不计(否则任何算法都至少是 Θ(n))。
  • 输出空间:题目要求返回的结果,通常也不可省
  • 辅助空间:算法执行时临时再 malloc / new / append 出来的缓冲区、栈、队列、哈希表……这才是可以“砍”的部分

. 输入数据能不能“压”?

  • ,但属于数据压缩/编码领域,不叫“降低算法空间复杂度”。
    例:把 1 GB 的文本先压缩成 100 MB 再处理,问题规模从 n 变成 0.1 n,可这份压缩是预处理,和算法本身的设计无关。
_java_python的主页 _java_python | 小虾三级 | 园豆:1014
提问于:2025-10-23 20:57
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册