2

是否可以在纸上精确估计在一个简单的数据集(10 个整数数组)上 C 中的一个简单算法(冒泡排序)将消耗多少 RAM?或者编译器实现问题和“字节填充”是否会使这成为不可能?

(给定一个平台,例如 32 位 x86 机器)。

4

2 回答 2

2

冒泡排序可以就地工作,因此除了排序的数组外,它不需要内存。

一个 10 整数数组需要 40 个字节,加上一些小的平台相关分配开销。
如果您想要一个真正精确的估计,您需要考虑可执行文件的大小、用于进程管理的内存等等。但是在通常有大量内存的 x86 上,这些事情真的没什么好担心的。

如果数组更大,那么每个整数需要 4 个字节,并且保持不变的开销变得可以忽略不计。整数之间没有填充,因此对于大型数组,您只需要关心每个整数 4 个字节。

于 2012-02-22T11:29:43.037 回答
0

这听起来像家庭作业,所以我会问你一些问题:

  1. 排序算法是对他们的项目进行排序还是在副本上工作?
  2. 如果他们处理副本,复制列表的大小不会主导计算吗?
  3. 如果它们就地排序,在列表空间之外需要多少存储空间?
  4. (3) 中的额外存储量是否取决于列表的大小?
于 2012-02-22T11:30:00.837 回答