首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算C程序的空间复杂度

计算C程序的空间复杂度
EN

Stack Overflow用户
提问于 2012-03-05 08:57:44
回答 1查看 2.3K关注 0票数 2

我想计算Windows上C程序的空间复杂度~内存使用量。我想在不查看任务管理器的情况下完成所有这些工作。我发现链接计算代码的空间:

代码语言:javascript
复制
#include <stdio.h> 

int main(void) { 
  int x; 
  for(; scanf("%d",&x) > 0 && x != 42; printf("%d\n", x)); 
  return 0; 
}

成为1724 kB

  1. 是如何计算的?
  2. 如何实现计算代码段空间复杂性度量的任何系统?

欢迎你的回答。

EN

回答 1

Stack Overflow用户

发布于 2012-03-05 10:08:08

安吉,从你的回复到沃里克,很明显这里有些混乱。这里的空间复杂性一词可能意味着许多不同的事情,从代码可执行文件的更小的大小,到分配给进程的资源的数量,以及这些资源的数量在执行过程中如何变化。

1724年可以根据其所代表的情况以多种不同的方式计算。它是表示结果可执行文件中的所有内容,还是只表示“代码”文本?在不同的平台上,可执行文件的大小不同重要吗?这只涉及静态信息。动态信息(有关程序运行时性能的信息)是另一种蠕虫。

在这种情况下,您必须认识到,分配给流程的资源可能与流程所需的最低资源不完全匹配。如果您要求一个程序寻找需要分配给进程的最小内存大小,那么您将陷入非常模糊的境地:您是从进程的角度来讨论所需的物理内存还是虚拟内存?例如,如果我们运行同一个进程的两个实例,那么两个进程可以共享只读(例如代码内存),因此其中一个实例不需要对其进行计算。要求操作系统进行这样的计算是有问题的,因为它需要非常精确地知道您所要求的是什么,而拥有一个通过查看代码文本和忽略平台来计算运行时内存使用量的程序也是有问题的。

计算这个最小值是非常重要的,尽管它可能已经被某些人完成了。无论哪种方式,您都需要使用比“空间复杂性”更具体和更容易混淆的术语来搜索它,这是一种更适用于笔和纸算法的方法。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9563916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档