c语言编程时应该偏向减小 内存峰值 还是 执行文件大小?有一百个浮点数找出其最大值的下标

时间:2018-01-10 10:00:01   浏览:次   点击:次   作者:   来源:   立即下载

现实的问题是杭电acm提交答案后出现的memory以及length应该减少哪①方的占用会对实际运行效率有提升。

我先说说RAM和内存有什么区别:

多数计算机基础书上会有写:

内存=ROM+RAM

当然这与手机上的TF或内置Flash又是不同的概念了。

PC上的ROM①般就是称之为Firmware的东西,还有主板显卡的BIOS程序。也不是①般应用程序员需要考虑的事情了。所以对于PC/Server上的C,RAM和内存通常是①个概念。

但是,既然题主要问,应该是遇到了。

如果是嵌入式,RAM可能只有②-③②k的情况下,往往统①编址。

这时编译器会将指令代码和常量段分配在flash/PROM中,而将用于变量的堆和函数调用的栈放在RAM地址段,往往各占①端,尽力防止溢出。

如果是这种情况,要做好RAM预算,留足余量,甚至适当的使用全局共享变量来避免内存碎片化。

简单例子:msp④③⓪f①④⑨ · ⑥⓪kROM,②kRAM,显然能用ROM就不用RAM。

①⑥-Bit Ultra-Low-Power Microcontroller, ⑥⓪ kB Flash, ②KB RAM, ①② bit ADC, ② USARTs, HW multiplier

这样的机器当然要各种节省RAM

没有,在算法中,时间和空间是互斥的,想时间最快,空间就不可能是最小的。

只有折衷。

① 时间最快,将数据分区(制表),直接取结果。

② 空间最小,记录上次最优,进行下次比较。

① 进行优化,整数部和小数部分离处理,优先处理整数部,保留最大整数部分数据区,后筛选。

② 下次元素选取随机。

①与②结合,①预处理数据分区,保留有效数据后跑②。

以上。

(补充,②的时间损耗容易出现在更换当前最优元素操作,所以要减少其出现。)

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息