是否可以在纸上精确估计在一个简单的数据集(10 个整数数组)上 C 中的一个简单算法(冒泡排序)将消耗多少 RAM?或者编译器实现问题和“字节填充”是否会使这成为不可能?
(给定一个平台,例如 32 位 x86 机器)。
是否可以在纸上精确估计在一个简单的数据集(10 个整数数组)上 C 中的一个简单算法(冒泡排序)将消耗多少 RAM?或者编译器实现问题和“字节填充”是否会使这成为不可能?
(给定一个平台,例如 32 位 x86 机器)。
冒泡排序可以就地工作,因此除了排序的数组外,它不需要内存。
一个 10 整数数组需要 40 个字节,加上一些小的平台相关分配开销。
如果您想要一个真正精确的估计,您需要考虑可执行文件的大小、用于进程管理的内存等等。但是在通常有大量内存的 x86 上,这些事情真的没什么好担心的。
如果数组更大,那么每个整数需要 4 个字节,并且保持不变的开销变得可以忽略不计。整数之间没有填充,因此对于大型数组,您只需要关心每个整数 4 个字节。
这听起来像家庭作业,所以我会问你一些问题: